我有两个清单:
name = ['A', 'B', 'C']
sex = ['M', 'F', 'M']
从这两个方面创建这样的列表具有良好性能的最佳方法是什么:
comb = [['A', 'M'], ['B', 'F'], ['C', 'M']]
答案 0 :(得分:4)
使用zip
:
>>> name = ['A', 'B', 'C']
>>> sex = ['M', 'F', 'M']
>>> zip(name, sex)
[('A', 'M'), ('B', 'F'), ('C', 'M')]
如果您希望项目成为列表,可以使用map
或列表推导来转换它们:
>>> map(list, zip(name, sex))
[['A', 'M'], ['B', 'F'], ['C', 'M']]
>>> [list(x) for x in zip(name, sex)]
[['A', 'M'], ['B', 'F'], ['C', 'M']]
注意:如果您使用的是Python 3.x,zip
,map
将返回迭代器而不是列表。要获取列表,请将返回的值传递给list
function:
list(zip(name, sex))