如何从Python字典随机选键并修改值?需重复执行两次
解决方案
你需要先筛选出当前剩余数量大于0的动物,再随机选择并修改对应值,重复两次操作。完整代码如下:
import random animals = { "pets": {"dog": 2, "cat": 1, "mouse": 0} } # 执行两次随机选择并减1操作 for _ in range(2): # 过滤出当前数量>0的动物 available = [animal for animal, cnt in animals["pets"].items() if cnt > 0] # 随机选一个 picked = random.choice(available) # 数量减1 animals["pets"][picked] -= 1 # 格式化为你需要的输出样式 output = ", ".join(f"{animal} {cnt}" for animal, cnt in animals["pets"].items()) print(output)
关键说明:
- 必须导入
random模块才能使用随机选择功能,你之前的代码漏掉了这一步。 - 每次循环前先过滤可用动物,避免选中数量已经为0的条目(比如初始的mouse)。
- 直接通过字典键修改对应值,完成减1操作。
- 最后用
join和格式化字符串把字典内容转换成目标输出格式。
运行后会得到类似dog 1, cat 0, mouse 0或dog 0, cat 1, mouse 0的结果,具体取决于随机选择的结果。
内容的提问来源于stack exchange,提问作者HajpaHajpa
相关产品推荐
相关产品推荐

