>  기사  >  백엔드 개발  >  Python을 사용하여 사전 키 값을 병합하고 중복 요소를 제거하는 예제 코드

Python을 사용하여 사전 키 값을 병합하고 중복 요소를 제거하는 예제 코드

高洛峰
高洛峰원래의
2017-03-24 17:32:371846검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.