python出现memory error_请问大神们Python处理数据遇到memory error怎么办?

我已经在64位的4Gubuntu里跑Python了,可是还是memoryerror,出错的函数是这个:deftrace(node_sequence=[]):whileTrue:l=[]i=j=0whilei

我已经在64位的4Gubuntu里跑Python了,可是还是memory error,出错的函数是这个:

def trace(node_sequence=[]):

while True:

l = []

i = j = 0

while i < len(node_sequence):

flag = 0

j = 1

while j < len(node_sequence):

if node_sequence[i][len(node_sequence[i])-1] == node_sequence[j][0]:

l = l + [node_sequence[i] + node_sequence[j][1:]]

del node_sequence[j]

flag = 1

else:

j += 1

if i == len(node_sequence):

break

if flag == 0:

l += [node_sequence[i]]

i += 1

if node_sequence == l:

break

node_sequence = l

l = []

for i in node_sequence:

t = []

for j in i:

t += [int(j)]

l += [t]

return l

我要做的事情举例如下:

假设有列表list=[[0, 16], [0, 34], [10, 15], [10, 28], [20, 35], [20, 58], [34, 13], [34, 18], [34, 20]]

用完这个函数之后得到[[0, 16], [0, 34,13], [0, 34,18],[0, 34,20,35],[0, 34,20,58],[10, 15], [10, 28]]

就是相当于如果list[i][1]=list[i][0]的话,就合并这两个元素,并且删掉重复项。

当我list长度达到2000时,语句“ l = l + [node_sequence[i] + node_sequence[j][1:]]”就报错memory error

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值