8

假设我有 3 个不同的列表

col1 = ['2006-03-28','2006-04-05','2006-04-06']
col2 = ['IBM', 'MSFT', 'IBM']
col3 = [1000, 1000, 500]

将这些列表组合到另一个列表中的最有效方法是什么:

col = [('2006-03-28', 'IBM', 1000),
       ('2006-04-05', 'MSFT', 1000),
       ('2006-04-06', 'IBM', 500)]
4

2 回答 2

16
>>> col1 = ['2006-03-28','2006-04-05','2006-04-06']
>>> col2 = ['IBM', 'MSFT', 'IBM']
>>> col3 = [1000, 1000, 500]
>>> list(zip(col1, col2, col3))
[('2006-03-28', 'IBM', 1000), ('2006-04-05', 'MSFT', 1000), ('2006-04-06', 'IBM', 500)]

如果您的列已经在一个列表中,您可以使用zip(*cols)

于 2012-08-19T10:20:15.567 回答
2

代码如下: Python 3.x

>>> col1 = ['2006-03-28','2006-04-05','2006-04-06']
>>> col2 = ['IBM', 'MSFT', 'IBM']
>>> col3 = [1000, 1000, 500]

>>> col = list(zip(col1 ,col2 ,col3 ))

>>> print(str(col))

[('2006-03-28', 'IBM', 1000),
 ('2006-04-05', 'MSFT', 1000),
 ('2006-04-06', 'IBM', 500)]

只是它本身的 zip() 语法适用于 Python 2.x。使用上面的代码在 Python 3.x 中将列表组合为行方式(或电子表格列)。

于 2015-05-09T11:56:28.077 回答