사전에서 임의 항목을 제거하려면 어떻게합니까?사전에서 임의로 항목 제거
사전에서 지정된 수의 항목을 제거해야하므로 무작위로 생각한 dict.popitem
을 사용하려고했지만 그렇지 않은 것으로 보입니다. docs으로
>>> 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}
지금 내가 (그것에서 일부 항목을 제거 할 수를 필요
내 문제에 대한Remove and return an arbitrary (key, value) pair from the dictionary.
, 내가 (예를 들어)와 같은 사전이 있다고 가정 사용자가 지정 함).
>>> for _ in range(4): # assume 4 items have to removed
... d.popitem()
...
('a', 1)
('c', 3)
('b', 2)
('e', 5)
그러나이 코드의 문제는, 때마다 스크립트가 실행되어, popitem()
팝 정확히 같은 항목 :
그래서 제 질문은 :
- 는 왜이 제대로 작동하지 않을
popitem()
입니까? 무작위가 아닌 임의의 항목을 제거하고 있습니까? - 사전에서 임의 항목을 제거하려면 어떻게해야합니까?
임의! = 임의. –
그럼이 '임의'는 무엇을 기반으로합니까? – user225312
적절하게는 쌍의 내부 순서에 따라 결정됩니다 (반복 순서에도 반영됨 - 다시 말하지만 임의적 인 것은 아닙니다.). Dicts는 순서가 없습니다. 그러나 항목이 내부적으로 저장되는 순서는 결정적입니다. * 일반적으로 생각조차하지 않는 매개 변수를 사용하는 경우 : 키 해시, 삽입 순서, 충돌, 총 항목 수 ... 다시 동일한 방법으로 동일한 사전을 만드는 것은 실제로 동일한 내부 순서를 만듭니다. – delnan