gpt4 book ai didi

Python-满足不同条件时如何从变量中选择

转载 作者:太空宇宙 更新时间:2023-11-04 07:01:51 24 4
gpt4 key购买 nike

我想知道是否有人可以帮助我解决 python 编程问题。我有5个数字(0,2,30,180,356),想随机选择一个条件

delayVariable=[0,2,30,180,365]
delayCondition = random.choice(delayVariable)

每次我想随机选择数字直到满足另一个条件。例如,当“365”已被选择 20 次时,我不再希望它选择该条件,而是应该从 [0,2,30,180] 生成随机数,如果“30”已被选择 20 次,我也希望将其排除在外,因此应从 [0,2,180] 生成随机数。我希望这一直持续到没有数字为止。

提前致谢


谢谢您,这些答案正是我所需要的。更复杂的问题是当满足另一个条件时,可能会在该数字被选择 20 次之前发生。但我仍然希望停止选择该号码。例如:

如果 condition1="off"则我不再希望选择“0”,如果 condition2="off"则我不再希望选择“2”等等....

最佳答案

使用计数器。

import collections
import random

delays=[0,2,30,180,365]

counter = collections.defaultdict(int)
while delays:
condition = random.choice(delays)
print(condition)
counter[condition] += 1
if counter[condition] == 20:
delays.remove(condition)

程序计算列表中每个元素被选中的频率。当达到阈值(此处为 20)时,该元素将被删除。

如果您想在达到阈值之前根据条件从列表中删除一个元素,您有两种选择。首先,您可以将此条件的计数器值设置为阈值。该元素将被代码中的 remove 删除。第二种——在我看来更好的方法——就是从列表中删除元素。如果该元素不再存在,则无法选择它。问题解决了。

关于Python-满足不同条件时如何从变量中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19272099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com