python - 从列表中提取满足条件的随机值? Python

标签 python random

是否可以使用 random 模块从列表中提取字符串,但前提是字符串的长度大于 x?

例如:

list_of_strings = ['Hello', 'Hello1' 'Hello2']

如果您设置x = 5并调用random.choice(),代码将仅在list_of_strings[1]之间进行“选择”和list_of_strings[2]

我意识到您可以创建第二个列表,其中仅包含 len > x 的值,但我想知道是否可以不执行此步骤。

最佳答案

random.choice([s for s in list_of_strings if len(s) > x])

或者你可以这样做:

while True:
    choice = random.choice(list_of_strings)
    if len(choice) > x:
        return choice

您应该首先检查列表中是否有长度超过 x 的字符串,否则该代码将永远不会结束。

另一种可能的解决方案是使用水库采样,它的额外好处是运行时间有限。

关于python - 从列表中提取满足条件的随机值? Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36311197/

相关文章:

c# - 在 C# 中随机化数学符号

python - 是否可以使用 python requests 库发布音频文件

python - python plot 中的一个错误

python - Pymongo如何更新数组中行的特定值

python - 在蝗虫中如何从一个任务获得响应并将其传递给其他任务

random - 如何为实体创建唯一的 7 位代码?

vb.net - 调用 Rnd() 生成相同的数字

c++ - 如何产生不产生超过 X 个连续元素的随机数序列

iphone - 在 Objective-C 中随机化 NSArray 的规范方法

python行编辑telnet服务器