python에 다음과 같은 사전이 있다고 가정합니다.
x={'a':'1,2,3', 'b':'2,3,4 '}
은 다음과 같이 병합되어야 합니다.
x={'c':'1,2,3,4'}
세 가지가 필요합니다. 완료:
1. 문자열을 값 목록으로 변환
2. 두 목록을 병합하고 새 키 값을 추가합니다
3. 1 통과 일반적으로 사용되는
함수 eval()을 사용하면 두 번째 단계에서 키 값을 추가하고 요소를 추가할 수 있습니다. 세 번째 단계에서는 set 세트의 속성을 사용하여 효과를 얻습니다. 그러나 결국 세트 컬렉션을 목록 목록으로 변환해야 합니다. 코드는 다음과 같습니다.
x={'a':'1,2,3','b':'2,3,4'} x['c']=list(set(eval(x['a'])+eval(x['b']))) del x['a'] del x['b'] print x
출력 결과는 다음과 같습니다.
{'c': [1, 2, 3, 4]}그러나 일괄 처리를 하게 되면, 키 값 중 하나에 요소가 하나만 있어서 컴파일러가 이를 int 유형으로 인식하게 되어 오류가 발생할 가능성이 있습니다.
x={'a':'1,2,3','b':'2'} x['c']=list(set(eval(x['a'])+eval(x['b']))) del x['a'] del x['b'] print x
실행 결과는
Traceback (most recent call last): File "test.py", line 2, in <module> x['c']=list(set(eval(x['a'])+eval(x['b']))) TypeError: can only concatenate tuple (not "int") to tuple
처리 방법은 'b'의 요소를 인위적으로 복사하여 컴파일러가 int로 인식하지 못하도록 하는 것입니다.
아아아아
이거 괜찮을 것 같아요. 여기서는 중복된 요소를 제거하고 동일한 요소를 추가하는 기능을 활용합니다. 그러나 'b'의 요소가 비어 있으면 이 메서드도 실패합니다. 여기서는 Python 목록의 마지막 요소 뒤에 쉼표가 올 수 있다는 사실을 활용해야 하며 다음과 같이 처리할 수 있습니다.
x={'a':'1,2,3','b':'2'} x['c']=list(set(eval(x['a'])+eval(x['b']+','+x['b']))) del x['a'] del x['b'] print x
실행 결과:
{'c': [1, 2, 3]}마지막 방법은 처음 두 상황도 처리할 수 있습니다.
위 내용은 Python을 사용하여 사전 키 값을 병합하고 중복 요소를 제거하는 예제 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!