python - random.sample 仅返回字符而不是字符串

标签 python string character random

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

这就是我所做的:

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

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

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

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

最佳答案

如果名称全部位于单独的行中,请执行以下操作:

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

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

关于python - random.sample 仅返回字符而不是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1202251/

相关文章:

swift - 以字节为单位获取字符的 UTF-8 编码

java - 我们如何实现车库门跟踪其最后移动方向?

python - python中模式匹配时如何从文本中获取单词大小写

python - 根据列的组合增加列值

c# - 在PHP中,解压后的gz字符串中每个字符后面都有^@,为什么?

java - 交换内容后构建新字符串的更好方法

python - 打印 UTF-8 编码的字节字符串

python - beautifulsoup 不返回所有 html

python - 基于多列值的重复键对两个大型 Pandas DataFrame 进行条件合并/连接 - Python

java - 在连接两个字符串 s1 和 s2 时,生成的输出字符串 s3 将在 java 中的堆或常量池中创建?