Свести кортеж внутри списка, который содержит другой тип объекта - PullRequest
2 голосов
/ 21 октября 2019

У меня есть список, похожий на матриоску, к счастью, он достигает формата, который является [(), int]

Пример:

    [[('spring', 'flowers'), 1], [('spring', 'birds'), 1], [('autumn', 'leaves'), 3],[('autumn', 'mild'), 1], [('summer', 'sun'), 2]]

Я пытаюсьполучить это:

    [['spring', 'flowers', 1], ['spring', 'birds', 1], ['autumn', 'leaves', 3],['autumn', 'mild', 1], ['summer', 'sun', 2]]

Я попытался распаковать кортеж, используя формулу:

   [(a, *rest) for a, rest in list]

И ошибка: TypeError: объект 'int' не повторяется

Я также пытался разделить элементы в подсписках, но не смог сохранить порядок их объединения:

   season    = list(x[0] for x in info if isinstance(x,tuple))
   property  = list(x[1] for x in info if isinstance(x,tuple))
   times     = list(x for x in info if isinstance(x,int))

1 Ответ

1 голос
/ 21 октября 2019

Если элементы синтаксически равны, то вы можете использовать.

lst = [[('spring', 'flowers'), 1], [('spring', 'birds'), 1], [('autumn', 'leaves'), 3],[('autumn', 'mild'), 1], [('summer', 'sun'), 2]]

[[x[0][0], x[0][1], x[1]] for x in lst]

# [['spring', 'flowers', 1], ['spring', 'birds', 1], ['autumn', 'leaves', 3], ['autumn', 'mild', 1], ['summer', 'sun', 2]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...