【发布时间】:2018-01-19 21:50:49
【问题描述】:
我有这样一个清单:
mylist=[[[1,2,3,...,200],[1,2,3,...,200],[1,2,3,...,200],[1,2,3,...,40]],...]
我想合并 mylist 中每个项目的前三个列表,并有如下内容:
final_list=[[[1,2,3,...,600],[1,2,3,...,40]],...]
我为此编写了这段代码:
def extend(mylist):
a=mylist[0]
b=mylist[1]
c=mylist[2]
a.extend(b)
a.extend(c)
return a
final_list=[]
for i in mylist:
final_list.append([extend(i),i[3]])
当列表很小时它可以正常工作,但是当我想将三个 200 数组列表合并为一个 600 数组列表时,我会遇到“MemoryError”:
a.extend(c)
MemoryError
如何解决这个问题?
【问题讨论】:
-
购买更多内存? ;)
-
你应该尝试使用带有yield的生成器,见stackoverflow.com/questions/231767/…