我有一个从 CSV 文件中读取的四元组列表,其元素的形式为 t =(id, e1, e2, label)。该列表应包含每个 t 元组:(someID, e2,e1, 3-label)。如果没有,我需要添加到列表中。
我编写了以下代码并将我的列表缩小到只有 50 个元组。
import nltk
import csv
#file string
fs = "mydataset.csv"
with open(fs) as infile:
rows = list(csv.reader(infile))[950:1000]
size = len(rows)
print("initial size =", size)
newSize = size
firstId = int(rows[1][0])
lastId = int(rows[size-1][0])
for i in range(size):
if i % 500 == 0:
rint("program progression = ", i*100/size, '%', sep ='')
tempRow = rows[i]
if tempRow[-1] == '1' or tempRow[-1] == '2':
for j in range(i+1, size):
# print("j = ", j)
if tempRow[1] == rows[j][2] and tempRow[2] == rows[j][1]:
if int(tempRow[3]) == 3-int(rows[j][3]):
break
else:
print("error in row: ", i)
else:
if j == size -1:
lastId +=1
print(tempRow[-1])
rows += rows +[[ str(lastId), tempRow[2], tempRow[1], str(3-int(tempRow[3])) ]]
newSize +=1
print("newSize", newSize)
print("END")
当我运行它时,它会耗尽我的内存。它使用超过8GB的内存?请问这是怎么回事?我的 CSC 文件只有 7200 行 4 列。我真的不知道我还能做什么。
万千封印
皈依舞
相关分类