в Python, как объединить список кортежей в один список? [дубликат]
этот вопрос уже есть ответ здесь:
следуя моему предыдущему вопросу как сгруппировать элементы списка в кортеж?
Если у меня есть список кортежей, например
a = [(1,3),(5,4)]
как я могу распаковать кортежей и переформатировать его в один список
b = [1,3,5,4]
Я думаю, что это также связано с iter
функция, но я действительно не знаю, как это делать. Пожалуйста, просветите меня.
5 ответов
In [11]: list(itertools.chain(*a))
Out[11]: [1, 3, 5, 4]
Если вам просто нужно перебрать 1, 3, 5, 4
, вы можете избавиться от list()
звонок.
иначе:
a = [(1,3),(5,4)]
b = []
for i in a:
for j in i:
b.append(j)
print b
это будет обрабатывать только кортежи внутри списка (a) tho. Вам нужно добавить операторы if-else, если вы хотите также анализировать свободные переменные, например;
a = [(1,3),(5,4), 23, [21, 22], {'somevalue'}]
b = []
for i in a:
if type(i) == (tuple) or type(i) == (list) or type(i) == (set):
for j in i:
b.append(j)
else:
b.append(i)
print b