如何在Python中从字典中随机删除项?
我需要从字典中删除指定数量的项,所以我尝试使用`dict.popitem`,我认为它是随机的,但似乎不是。
正如文档所说:
“从字典中删除并返回任意(键、值)对。”
对于我的问题,假设我有一个像这样的字典(例如):
现在我需要从中删除一些项目(数量由用户指定)。因此,我编写了以下代码:
我需要从字典中删除指定数量的项,所以我尝试使用`dict.popitem`,我认为它是随机的,但似乎不是。
正如文档所说:
“从字典中删除并返回任意(键、值)对。”
对于我的问题,假设我有一个像这样的字典(例如):
>>> 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()
为什么不能按照应该的方式工作?随机删除不是随机的吗?- 如何从字典中随机删除项目?