【问题标题】:random.sample return only characters instead of stringsrandom.sample 只返回字符而不是字符串
【发布时间】:2009-07-29 18:44:26
【问题描述】:

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

这就是我的工作:

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

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

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

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

【问题讨论】:

    标签: python string character random-sample


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢。现在让这个问题淡入未知:D
    猜你喜欢
    • 2020-10-15
    • 2019-09-15
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-28
    • 1970-01-01
    相关资源
    最近更新 更多