2009-07-29 106 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

相关问题