如何在 Python 中从字典中删除随机项目?
我必须从字典中删除指定数量的项目,所以我尝试使用 dict.popitem
我认为它是随机的,但它似乎不是。
作为docs说:
Remove and return an arbitrary (key, value) pair from the dictionary.
对于我的问题,假设我有一个像这样的字典(一个例子):
>>> d = dict(zip((string.ascii_lowercase), range(1, 10)))
>>> d
{'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4, 'g': 7, 'f': 6, 'i': 9, 'h': 8}
现在我需要从中删除一些项目(计数由用户指定)。
所以我这样写:
>>> for _ in range(4): # assume 4 items have to removed
... d.popitem()
...
('a', 1)
('c', 3)
('b', 2)
('e', 5)
但是这段代码的问题是,每次运行脚本时,popitem()
弹出完全 相同的项目。你可以随意测试这个,我已经试过很多次了。
所以我的问题是:
- 为什么
popitem()
没有按应有的方式工作?删除任意项目不是随机的吗? - 如何从字典中删除随机项目?
最佳答案
你说的是这个吗?
import random
for i in range(4):
some_dict.pop( random.choice(some_dict.keys()) )
关于python - 从字典中随机删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4809044/