是否可以使用 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/