根据我之前的问题 如何将列表项分组为元组?
如果我有一个元组列表,例如:
如何解包元组并将其重新格式化为单个列表?
我认为这也与`iter`函数有关,但我真的不知道该怎么做。请给我指点。
a = [(1,3),(5,4)]
如何解包元组并将其重新格式化为单个列表?
b = [1,3,5,4]
我认为这也与`iter`函数有关,但我真的不知道该怎么做。请给我指点。
a = [(1,3),(5,4)]
b = [1,3,5,4]
b = [i for sub in a for i in sub]
那就行了。
for sub in a
遍历 a
中的每个子列表(或元组),然后 for i in sub
遍历每个子列表中的每个元素,将它们组合在一起形成结果列表。希望这能让解释更加清晰明了。 - VolatilityIn [11]: list(itertools.chain(*a))
Out[11]: [1, 3, 5, 4]
1, 3, 5, 4
,你可以省略 list()
调用。itertools.chain.from_iterable
有什么意义呢? - Volatilityl = []
for x,y in a:
l.append(x)
l.append(y)
a = [(1,3),(5,4)]
b = []
for i in a:
for j in i:
b.append(j)
print b
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
isinstance(i, collections.Iterable)
代替类型检查(假设已经导入了collections
)。 - Volatilityimport itertools
b = [i for i in itertools.chain(*[(1,3),(5,4)])]