Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 딕셔너리를 무작위 순서로 출력하는 방법

Python 딕셔너리를 무작위 순서로 출력하는 방법

파이썬의 딕셔너리(dictionary)는 리스트나 문자열처럼 인덱스로 요소에 접근할 수 없기 때문에, 딕셔너리 자체를 직접 무작위로 섞는(shuffle) 것은 불가능합니다. 하지만 딕셔너리의 키(keys)는 리스트로 변환할 수 있고, 이 리스트에 random 모듈의 shuffle() 함수를 적용하면 순서를 무작위로 바꿀 수 있습니다. 이렇게 섞인 키 순서대로 반복하면서 각 키에 해당하는 값(value)을 함께 출력하면 됩니다.

예제 코드

>>> D1 = {"pen": 25, "pencil": 10, "book": 100, "sharpner": 5, "eraser": 5}
>>> import random
>>> l = list(D1.keys())
>>> l
['pen', 'pencil', 'book', 'sharpner', 'eraser']
>>> random.shuffle(l)
>>> l
['pencil', 'eraser', 'sharpner', 'book', 'pen']
>>> for k in l:
    print(k, D1[k])

실행 결과

pencil 10
eraser 5
sharpner 5
book 100
pen 25

동작 원리

  1. list(D1.keys()) — 딕셔너리의 모든 키를 새로운 리스트로 변환합니다.
  2. random.shuffle(l) — 리스트의 요소 순서를 제자리(in-place)에서 무작위로 섞습니다.
  3. for k in l 루프 — 섞인 순서대로 각 키와 그에 대응하는 값을 출력합니다.

실행할 때마다 출력되는 순서는 달라집니다. 참고로 shuffle()은 원본 리스트 자체를 변경하므로, 원본을 유지하고 싶다면 random.sample(list(D1.keys()), len(D1))을 사용해 무작위 순서의 새로운 키 목록을 얻는 방법도 있습니다.