사전 병합
Case1: 한 사전에서 다른 사전 추가(덮어쓰기)
결론
다음과 같이 업데이트 () 방법을 사용합니다.
d1 = {'one':1, 'two':2}
d2 = {'two':'ii', 'three':'iii'}
d1.update(d2)
print(d1)
# {'one': 1, 'two': 'ii', 'three': 'iii'}
중복된 키가 있는 경우 업데이트 () 의 내용이 우선적입니다. (내용으로 덮어쓰기)또한 두 개의 사전을 동시에 추가한 경우 다음과 같다.
d1 = {'one':1, 'two':2}
d2 = {'two':'ii', 'three':'iii'}
d3 = {'three':'III', 'four':'IV'}
d1.update(d2,**d3)
print(d1)
# {'one': 1, 'two': 'ii', 'three': 'III', 'four': 'IV'}
별표 2개**
가 무엇인지 후술두 별표의 정체을 참조하십시오.또 3개 이상의 사전으로는 업데이트 () 를 할 수 없을 것 같습니다.
Case2: 두 사전을 결합한 새 사전 생성
결론
아래와 같다.
d1 = {'1':1, '2':2}
d2 = {'2':'ii', '3':'iii'}
d3 = dict(d1, **d2)
print(d3)
# {'1': 1, '2': 'ii', '3': 'iii'}
덮어쓰는 경우와 마찬가지로 중복된 키가 있는 경우 뒤에 지정된 사전의 내용이 우선합니다(내용으로 덮어쓰기).또 3개 이상의 사전이 결합되지 않는 모습.
또한python3.5 이후
dict()
를 대체하여 사용할 수 있다{}
.사용
{}
, 아래와 같이 3개 이상의 사전을 동시에 결합할 수 있다.d1 = {'one':1, 'two':2}
d2 = {'two':'ii', 'three':'iii'}
d3 = {'three':'III', 'four':'IV'}
d4 = {**d1, **d2, **d3}
print(d4)
# {'one': 1, 'two': 'ii', 'three': 'III', 'four': 'IV'}
두 별표의 정체
원격 데이터에 별표
*
를 추가하면 함수의 매개 변수로 마운트 해제할 수 있습니다.특히 사전에 두 개의 별표를 더하면 키워드 매개 변수로 마운트 해제할 수 있다.
some_list = ['aaa', 'a', 'aaaa', 'aaaaa', '']
option = {
'key':len,
'reverse':True
}
some_list.sort(**option)
print(some_list)
# ['aaaaa', 'aaaa', 'aaa', 'a', '']
이 예에서 다시 배열된 기준key
과 오름차순/내림차순reverse
을 사전으로 정의하고sort() 함수의 키워드 매개 변수로 패키지화합니다.그나저나 별표라면 사전 열쇠만 하역됩니다.(목록과 같은 동작이 됩니다.)
option = {
'key':len,
'reverse':True
}
print(*option)
# key reverse
option_list = ['key', 'reverse']
print(*option_list)
# key reverse
추적: Python 3.9 이후
3.9 이후에는 위처럼 복잡하지 않고 논리와 산자
|
를 사용하면 매우 간단하게 실현할 수 있습니다!@shiracamus선생님이 알려주셨어요!
d1 = {'one':1, 'two':2}
d2 = {'two':'ii', 'three':'iii'}
# Case1: 片方の辞書にもう片方を追加する (上書き)
d1 |= d2
print(d1)
# {'one': 1, 'two': 'ii', 'three': 'iii'}
# Case2: 2つの辞書を結合した新しい辞書を生成する
d3 = d1 | d2
print(d3)
# {'one': 1, 'two': 'ii', 'three': 'iii'}
평소에 접촉하는 업무 시스템은 Python3.6에서 실행되기 때문에 사용할 수 없지만 편리하다~
Reference
이 문제에 관하여(사전 병합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tiger-for-fun/items/3faff2ac40885ab59a5f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)