2009-07-29 14 views
2

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

これは私が何をすべきかです:

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

これは、5つの要素の文字のリストを与えるように:

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

私はrandom.sample一部を省略して、リストを印刷する場合、それが出て印刷しますファイルのすべての行、期待された動作であり、ファイルが正常に読み取られることを証明します。

答えて

3

名は、次のRY、別々の行にすべてある場合:あなたはrandom.sample()にinterableを渡す必要があるため

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

は基本的に、あなたは間違っています。文字列を渡すと、それはリストのように扱われます。名前がすべて1行にある場合は、split()を使用してそれらを引き離し、そのリストをrandom.sample()に渡す必要があります。

+1

ありがとうございます。今、この質問を未知のものに染み込ませる:D –

関連する問題