개발/Python

파이썬 dict replace 값

MinorMan 2021. 1. 9. 18:58
반응형

<질문>

저는 20,000 개 이상의 항목이 포함 된 사전을 가지고 있으며, 현재로서는 고유 한 단어와 해당 단어가 원본 텍스트에 사용 된 횟수 (이탈리아어로 Dante의 Divine Comedy)가 있습니다.

내가 찾은대로 값을 실제 정의로 대체하는 모든 항목을 검토하고 싶습니다. 대체하기 위해 값으로 숫자를 갖는 키워드를 반복하는 간단한 방법이 있습니까 (의미를 조사 할 때)?

사전이 시작됩니다.

{'corse': 378, 'cielo,': 209, 'mute;': 16, 'torre,': 11, 'corsa': 53, 'assessin': 21, 'corso': 417, 'Tolomea': 21}  # etc.

연구하고 정의 할 키워드를 제안하는 일종의 응용 프로그램입니다.


<답변1>

특정 값 (또는 값 유형)은 선택할 수 없습니다. 당신은 역 색인을 만들거나 (번호를 다시 (목록) 키로 매핑) 반복해야합니다.모두매번 가치.

어쨌든 임의의 순서로 숫자를 처리하는 경우 모든 항목을 반복 할 수도 있습니다.

for key, value in inputdict.items():
    # do something with value
    inputdict[key] = newvalue

그렇지 않으면 역 인덱스로 갈 것입니다.

from collections import defaultdict

reverse = defaultdict(list)
for key, value in inputdict.items():
    reverse[value].append(key)

이제 값으로 키를 조회 할 수 있습니다.

for key in reverse[value]:
    inputdict[key] = newvalue

<답변2>

필요한 경우선언적솔루션, 당신은 사용할 수 있습니다dict.update()dict의 값을 변경합니다.

다음 중 하나 :

my_dict.update({'key1': 'value1', 'key2': 'value2'})

또는 다음과 같이 :

my_dict.update(key1='value1', key2='value2')

이후파이썬 3.5당신은 또한 사용할 수 있습니다사전 압축 풀기이를 위해 :

my_dict = { **my_dict, 'key1': 'value1', 'key2': 'value2'}

참고 : 이렇게하면 새 사전이 생성됩니다.

이후파이썬 3.9당신은 또한 사용할 수 있습니다운영자 이동사전 :

my_dict = my_dict | {'key1': 'value1', 'key2': 'value2'}

참고 : 이렇게하면 새 사전이 생성됩니다.

또는 사용할 수 있습니다업데이트 연산자:

my_dict |= {'key1': 'value1', 'key2': 'value2'}

<답변3>

사전을 반복하면 키를 얻게되므로 사전이 다음과 같은 변수에 있다고 가정합니다.data그리고 당신은 몇 가지 기능이 있습니다find_definition()정의를 얻으면 다음과 같이 할 수 있습니다.

for word in data:
    data[word] = find_definition(word)

<답변4>

문제 해결에 도움이 될 것 같습니다.

다음과 같은 사전이 있다고 상상해보십시오.

dic0 = {0:"CL1", 1:"CL2", 2:"CL3"}

그리고 이것으로 값을 변경하고 싶습니다.

dic0to1 = {"CL1":"Unknown1", "CL2":"Unknown2", "CL3":"Unknown3"}

다음 코드를 사용하여 값을 변경할 수 있습니다.dic0적절하게 존경받는dic0t01사전의 색인에 대해 걱정하지 마십시오.

for x, y in dic0.items():
    dic0[x] = dic0to1[y]

이제 다음이 있습니다.

>>> dic0
{0: 'Unknown1', 1: 'Unknown2', 2: 'Unknown3'}
반응형