2009-07-29 104 views
2

這是一種新手的問題,但我無法找到一個解決方案。我從一個文件中讀取了一個字符串列表,並嘗試用random.sample獲得一個隨機的5元素樣本,但是結果列表只包含字符。這是爲什麼?我怎樣才能得到一個隨機的字符串樣本列表?random.sample只返回字符的字符串而不是

這是我做的:

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

這給出了一個五行角色列表,如:

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

如果我省略了random.sample部分,並打印列表,它打印出文件的每一行,這是預期的行爲,並證明文件被讀取OK。

回答

3

如果名稱都在單獨的線路,RY如下:

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

基本上你會錯了,因爲你需要一個interable傳遞給random.sample()。當你傳遞一個字符串時,它將它視爲一個列表。如果你的名字都在同一行,你需要使用split()拉開他們,並通過該列表random.sample()

+1

謝謝。現在讓這個問題變成未知的:D – 2009-07-29 18:49:39

相關問題