-1

名前を効果的に解析して、次のようなテキストからメモリに保存する方法を教えてください。

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
...

このテキスト ファイルには、80,000 行を超える行が含まれています。ランダム選択には名前だけが必要です。ここで見つけることができるファイルのソースdist.all.last

4

1 に答える 1

2

行は空白で区切られており、単にファイルをループして、次を使用します.split()

with open('dist.all.last') as inputfile:
    names = [line.split()[0] for line in inputfile if line.strip()]

その中からランダムに1 つの名前を選択する必要がある場合は、次を使用できます。

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]

一度に複数の行をメモリに保持することなく選択を行います。

于 2013-03-20T17:13:34.213 に答える