将成对的列表/元组拆成两个列表/元组 [英] Unpacking a list / tuple of pairs into two lists / tuples
本文介绍了将成对的列表/元组拆成两个列表/元组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Possible Duplicate:
A Transpose/Unzip Function in Python
我有一个看起来像这样的列表:
I have a list that looks like this:
list = (('1','a'),('2','b'),('3','c'),('4','d'))
我想将列表分为2个列表.
I want to separate the list in 2 lists.
list1 = ('1','2','3','4')
list2 = ('a','b','c','d')
例如,我可以这样做:
list1 = []
list2 = []
for i in list:
list1.append(i[0])
list2.append(i[1])
但是我想知道是否有更优雅的解决方案.
But I want to know if there is a more elegant solution.
推荐答案
>>> source_list = ('1','a'),('2','b'),('3','c'),('4','d')
>>> list1, list2 = zip(*source_list)
>>> list1
('1', '2', '3', '4')
>>> list2
('a', 'b', 'c', 'd')
请注意,zip(*iterable)
是其自身的反函数:
Note that zip(*iterable)
is its own inverse:
>>> list(source_list) == zip(*zip(*source_list))
True
解包成两个列表时,它变成:
When unpacking into two lists, this becomes:
>>> list1, list2 = zip(*source_list)
>>> list(source_list) == zip(list1, list2)
True
rocksportrocker建议添加.
Addition suggested by rocksportrocker.
这篇关于将成对的列表/元组拆成两个列表/元组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文