Как удалить случайные элементы из словаря в Python?
Я должен удалить определенное количество элементов из словаря, и поэтому я попытался использовать 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()
не работает так, как должно? Удаление случайных предметов не случайно?
- Как удалить случайные элементы из словаря?