从 Python 中的两个一维列表创建二维列表的快速方法

Am1*_*3zA 0 python list

我有两个列表:

name = ['A', 'B', 'C']
sex = ['M', 'F', 'M']
Run Code Online (Sandbox Code Playgroud)

从这两个中创建这样的列表的具有良好性能的最佳方法是什么:

comb = [['A', 'M'], ['B', 'F'], ['C', 'M']]
Run Code Online (Sandbox Code Playgroud)

fal*_*tru 5

使用zip

>>> name = ['A', 'B', 'C']
>>> sex = ['M', 'F', 'M']
>>> zip(name, sex)
[('A', 'M'), ('B', 'F'), ('C', 'M')]
Run Code Online (Sandbox Code Playgroud)

如果您希望项目成为列表,您可以使用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']]
Run Code Online (Sandbox Code Playgroud)

注意:如果您使用的是 Python 3.x, zip,请map返回迭代器而不是列表。要获取列表,将返回值传递给list函数

list(zip(name, sex))
Run Code Online (Sandbox Code Playgroud)