2

これは一種の初心者の質問ですが、解決策が見つかりませんでした。ファイルから文字列のリストを読み取り、random.sample を使用してランダムな 5 要素のサンプルを取得しようとしましたが、結果のリストには文字しか含まれていません。何故ですか?文字列のランダム サンプル リストを取得するにはどうすればよいですか?

これが私がすることです:

    names = random.sample( open('names.txt').read(), 5 )
    print names

これにより、次のような 5 つの要素の文字リストが得られます。

['\x91', 'h', 'l', 'n', 's']

random.sample 部分を省略してリストを出力すると、ファイルのすべての行が出力されます。これは予想される動作であり、ファイルが正常に読み取られたことを証明します。

4

1 に答える 1

3

名前がすべて別々の行にある場合は、次のようにしてください。

names = random.sample(open('names.txt').readlines(), count)
print names

にインターラブルを渡す必要があるため、本質的に間違っていますrandom.sample()。文字列を渡すと、それはリストのように扱われます。名前がすべて 1 行にある場合は、 を使用split()してそれらを分離し、そのリストを に渡す必要がありますrandom.sample()

于 2009-07-29T18:47:14.690 に答える