[PYTHON] 파이썬 사전에서 무작위 값을 얻는 방법
PYTHON파이썬 사전에서 무작위 값을 얻는 방법
어떻게하면 딕트에서 임의의 쌍을 얻을 수 있습니까? 나는 당신이 나라의 수도를 추측 할 필요가있는 곳에서 게임을 만들고 있는데, 무작위로 나타나기 위해서는 질문이 필요합니다.
그 딕트는 { 'VENEZUELA': 'CARACAS'}처럼 보입니다.
어떻게해야합니까?
해결법
-
==============================
1.한 가지 방법 (Python 2. *에서)은 다음과 같습니다.
한 가지 방법 (Python 2. *에서)은 다음과 같습니다.
import random d = {'VENEZUELA':'CARACAS', 'CANADA':'OTTAWA'} random.choice(d.keys())
편집 : 문제는 원래 게시물 후 몇 년 동안 바뀌었고 이제는 단일 항목보다는 쌍을 묻습니다. 마지막 줄은 다음과 같아야합니다.
country, capital = random.choice(list(d.items()))
-
==============================
2.나는이 문제를 해결하려고 노력했다.
나는이 문제를 해결하려고 노력했다.
https://github.com/robtandy/randomdict
키, 값 및 항목에 대한 O (1) 무작위 액세스 권한이 있습니다.
-
==============================
3.무작위 모듈을 사용하고 싶지 않다면 popitem ()을 시도해 볼 수도 있습니다 :
무작위 모듈을 사용하고 싶지 않다면 popitem ()을 시도해 볼 수도 있습니다 :
>> d = {'a': 1, 'b': 5, 'c': 7} >>> d.popitem() ('a', 1) >>> d {'c': 7, 'b': 5} >>> d.popitem() ('c', 7)
dict는 순서를 보존하지 않기 때문에 popitem을 사용하여 항목을 임의로 (그러나 엄밀하게는 임의 순서가 아닌) 순서대로 가져옵니다.
또한 popitem은 문서에서 언급 한 것처럼 키 - 값 쌍을 사전에서 제거한다는 점도 명심하십시오.
-
==============================
4.
>>> import random >>> d = dict(Venezuela = 1, Spain = 2, USA = 3, Italy = 4) >>> random.choice(d.keys()) 'Venezuela' >>> random.choice(d.keys()) 'USA'
사전 (국가)의 키에 random.choice를 호출합니다.
-
==============================
5.이 시도:
이 시도:
import random a = dict(....) # a is some dictionary random_key = random.sample(a, 1)[0]
이것은 확실히 작동합니다.
-
==============================
6.숙제이기 때문에 :
숙제이기 때문에 :
체크 아웃 random.sample () 선택하고 목록에서 임의의 요소를 반환합니다. dict.keys ()를 사용하여 사전 키 목록을 가져올 수 있고 dict.values ()를 사용하여 사전 값 목록을 가져올 수 있습니다.
-
==============================
7.random.choice ()를 사용하지 않으려면 다음과 같이 시도하십시오.
random.choice ()를 사용하지 않으려면 다음과 같이 시도하십시오.
>>> list(myDictionary)[i] 'VENEZUELA' >>> myDictionary = {'VENEZUELA':'CARACAS', 'IRAN' : 'TEHRAN'} >>> import random >>> i = random.randint(0, len(myDictionary) - 1) >>> myDictionary[list(myDictionary)[i]] 'TEHRAN' >>> list(myDictionary)[i] 'IRAN'
-
==============================
8.나는 당신이 퀴즈 종류의 응용 프로그램을 만들고 있다고 가정합니다. 이런 종류의 어플리케이션을 위해 나는 다음과 같은 함수를 작성했다 :
나는 당신이 퀴즈 종류의 응용 프로그램을 만들고 있다고 가정합니다. 이런 종류의 어플리케이션을 위해 나는 다음과 같은 함수를 작성했다 :
def shuffle(q): """ The input of the function will be the dictionary of the question and answers. The output will be a random question with answer """ selected_keys = [] i = 0 while i < len(q): current_selection = random.choice(q.keys()) if current_selection not in selected_keys: selected_keys.append(current_selection) i = i+1 print(current_selection+'? '+str(q[current_selection]))
= { 'VENEZUELA': 'CARACAS', 'CANADA': 'TORONTO'}의 질문을 입력하고 셔플 함수를 호출하면 결과는 다음과 같습니다.
VENEZUELA? CARACAS CANADA? TORONTO
옵션을 섞어서 더 많이 확장 할 수 있습니다. 이것이 도움이되기를 바랍니다. 출처 : RADIUS of CIRCLE
-
==============================
9.원래 게시물이 쌍을 원했기 때문에 :
원래 게시물이 쌍을 원했기 때문에 :
import random d = {'VENEZUELA':'CARACAS', 'CANADA':'TORONTO'} country, capital = random.choice(list(d.items()))
(파이썬 3 스타일)
-
==============================
10.이것을 시도해보십시오 (항목에서 random.choice 사용).
이것을 시도해보십시오 (항목에서 random.choice 사용).
import random a={ "str" : "sda" , "number" : 123, 55 : "num"} random.choice(list(a.items())) # ('str', 'sda') random.choice(list(a.items()))[1] # getting a value # 'num'
-
==============================
11.
b = { 'video':0, 'music':23,"picture":12 } random.choice(tuple(b.items())) ('music', 23) random.choice(tuple(b.items())) ('music', 23) random.choice(tuple(b.items())) ('picture', 12) random.choice(tuple(b.items())) ('video', 0)
-
==============================
12.이것은 Python 2와 Python 3에서 작동합니다.
이것은 Python 2와 Python 3에서 작동합니다.
무작위 키 :
random.choice(list(d.keys()))
무작위 값
random.choice(list(d.values()))
무작위 키와 값
random.choice(list(d.items()))
from https://stackoverflow.com/questions/4859292/how-to-get-a-random-value-in-python-dictionary by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] Imshow : 범위 및 측면 (0) | 2018.10.07 |
---|---|
[PYTHON] 동일한 random numberpy 배열을 일관되게 생성합니다. (0) | 2018.10.07 |
[PYTHON] 이전 csv 파일에 새 행 추가 python (0) | 2018.10.06 |
[PYTHON] 사전보기 객체 란 무엇입니까? (0) | 2018.10.06 |
[PYTHON] 파이썬을 사용하여 웹 페이지를 PDF로 변환하는 방법 (0) | 2018.10.06 |