random.sample只返回字符而不是字符串

时间:2009-07-29 18:44:26

标签: python string character random-sample

这是一种新手问题,但我找不到解决方案。我从一个文件中读取了一个字符串列表,并尝试使用random.sample获取一个随机的5元素样本,但是resultung列表只包含字符。这是为什么?如何获得随机的字符串样本列表?

这就是我的所作所为:

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

这给出了一个五元素字符列表,如:

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

如果省略random.sample部分并打印列表,它会打印出文件的每一行,这是预期的行为,并证明文件已被读取。

1 个答案:

答案 0 :(得分:3)

如果名称都在单独的行上,请执行以下操作:

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

基本上你错了,因为你需要将一个可传递给random.sample()。传递字符串时,它会将其视为列表。如果您的名字都在一行中,则需要使用split()将它们分开并将该列表传递给random.sample()

相关问题