【发布时间】:2017-07-22 17:01:13
【问题描述】:
我有一个名为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))
有关更快的方法的任何提示?
【问题讨论】:
-
注意,你的嵌套 for 循环并没有做你想做的事。想想看。尝试打印出
for i in range(5): for j in 'abc': print(i, j) -
@Mitch 我几乎可以肯定 OP 想要
zip,并且错误地生成了笛卡尔积(这就是它使他的计算机崩溃的原因)。 -
@juanpa.arrivillaga 是的,实际上同意了。
-
如果您认为这是由于内存不足,您最好使用带有生成器的惰性求值来节省内存。
zip返回生成器。