【发布时间】:2017-03-08 05:40:17
【问题描述】:
我有一个 CSV 文件,例如:
134;football
1457;soccer
12;volley
...
它正好有 4.992.909 行。代码是:
with open('/Users/someone/Desktop/python/sports.csv', 'r') as file1:
f = set(file1)
sports_label_list = [None] * 9985818
i = 0
for line in f:
sports = line.split(';')[0]
sports_label_list[i] = sports
i = i + 1
if 'football' in line:
sports_label_list[i] = 'football'
if 'volley' in line:
sports_label_list[i] = 'volley'
if 'basketball' in line:
sports_label_list[i] = 'basketball'
if 'soccer' in line:
sports_label_list[i] = 'soccer'
i = i + 1
当我打印以检查 sports_label_list 时,它运行正常(在偶数处显示数值,在奇数处显示运动名称)直到列表的 30000 元素附近。之后,它开始打印“无”。 CSV 文件没问题。有什么建议?谢谢!
【问题讨论】:
-
该文件可能有重复的行,
set消除了这些行。你为什么要把它放在一个集合中?不必要地使用内存。 -
你为什么不用
list.append()? -
重复的行很重要。