请告诉我如何有效地解析名称并将其存储到内存中,如下所示:
SMITH 1.006 1.006 1
JOHNSON 0.810 1.816 2
WILLIAMS 0.699 2.515 3
JONES 0.621 3.136 4
BROWN 0.621 3.757 5
DAVIS 0.480 4.237 6
MILLER 0.424 4.660 7
...
此文本文件包含超过80K行。我只需要随机选择的名字; 您可以在此处找到的文件来源dist.all.last
答案 0 :(得分:2)
这些行是以空格分隔的,只是循环遍历文件,然后使用.split()
:
with open('dist.all.last') as inputfile:
names = [line.split()[0] for line in inputfile if line.strip()]
如果您需要随机选择一个名称,可以使用:
import random
with open('dist.all.last') as inputfile:
name = None
for i, line in enumerate(inputfile):
r = random.randint(0, i)
if not r and line.strip():
name = line.split()[0]
进行选择而不会在内存中一次保留多行。