Сгладить вложенные кортежи - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть список кортежей, некоторые из которых являются вложенными:

[(name,(6,9.0,2.4),link),(name,(7.8,9.0,5),link)...]

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

[(name,6,9.0,2.4,link),(name,7.8,9.0,5,link)...]

Это отличается от решения поставленного здесь вопроса , в котором решение стремилось сохранить пары.

1 Ответ

0 голосов
/ 30 сентября 2018

Дано

lst = [('xyz',(6,9.0,2.4),'link1'),('abc',(7.8,9.0,5),'link2')]

Перебрать lst и распаковать внутренних кортежей во внешние кортежи.Вы можете сделать это с пониманием списка.

>>> [(x, *y, z) for x, y, z in lst]
[('xyz', 6, 9.0, 2.4, 'link1'), ('abc', 7.8, 9.0, 5, 'link2')]

Работает на python3.6.Для более старых версий используйте конкатенацию кортежей:

>>> [(x,) + y + (z,) for x, y, z in lst]
[('xyz', 6, 9.0, 2.4, 'link1'), ('abc', 7.8, 9.0, 5, 'link2')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...