将配对数据附加到列表

时间:2017-03-02 19:36:16

标签: python list append tuples

我有一个名为ID的数据列表,以及另一个名为Dates的列表。它们是配对数据,列表长度相等,每个长约800,000个项目。我想对每个列表中的每个项目进行配对,将它们放入元组中,并将这些元组添加到另一个列表中。即:

ID = [1,2,3,4,...]
Dates = [2012-04-05, 2012-04-07, 2012-04-08, 2012-04-09,...]

ID_Datetime = [(1,2012-04-05), (2,2012-04-07), (3,2012-04-08), (4,2012-04-09)...]

这是我的尝试。它似乎工作,但当我试图在实际列表上使用它时,我的计算机崩溃,因为它无法处理数据。

def list_combine():
    for i in ID:
           for j in Dates:
               ID_Datetime.append((i, j))

有关更快速的方法的任何提示吗?

2 个答案:

答案 0 :(得分:2)

您正在寻找zip函数,该函数将返回(在Python 3中)您可以迭代的zip对象:

>>> ID = [1,2,3,4]
>>> DateTime = ['2012-04-05', '2012-04-07', '2012-04-08', '2012-04-09']
>>> zip(ID, DateTime)
<zip object at 0x012EC828>

如果您想要完整列表,也可以在对象上调用list

>>> list(zip(ID, DateTime))
[(1, '2012-04-05'), (2, '2012-04-07'), (3, '2012-04-08'), (4, '2012-04-09')]

答案 1 :(得分:0)

使用itertools模块中的izip。这会从列表中创建一个迭代器而不是构建另一个迭代器,这样可以节省内存。