Bre*_*ixo 152 python tuples list
可能重复:
Python中的转置/解压缩功能
我有一个如下所示的列表:
list = (('1','a'),('2','b'),('3','c'),('4','d'))
Run Code Online (Sandbox Code Playgroud)
我想将列表分成2个列表.
list1 = ('1','2','3','4')
list2 = ('a','b','c','d')
Run Code Online (Sandbox Code Playgroud)
我可以这样做:
list1 = []
list2 = []
for i in list:
list1.append(i[0])
list2.append(i[1])
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更优雅的解决方案.
agf*_*agf 293
>>> 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')
Run Code Online (Sandbox Code Playgroud)
编辑:注意这zip(*iterable)是它自己的逆:
>>> list(source_list) == zip(*zip(*source_list))
True
Run Code Online (Sandbox Code Playgroud)
解压缩到两个列表时,会变为:
>>> list1, list2 = zip(*source_list)
>>> list(source_list) == zip(list1, list2)
True
Run Code Online (Sandbox Code Playgroud)
由rockportrocker建议的加法.
S.L*_*ott 24
list1= ( x[0] for x in source_list )
list2= ( x[1] for x in source_list )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
108929 次 |
| 最近记录: |