Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python - 첫 번째 값이 동일한 튜플의 합을 가져옵니다.

<시간/>

튜플은 순서가 있지만 변경할 수 없는 파이썬 컬렉션 또는 배열입니다. 첫 번째 요소가 동일한 튜플이 여러 개 있으면 첫 번째 요소가 동일한 튜플의 두 번째 요소를 추가해야 하는 시나리오가 있을 수 있습니다.

지도 및 for 루프 사용

이 방법에서는 먼저 튜플로 구성된 목록을 고려할 것입니다. 그런 다음 튜플의 요소를 키 값 쌍으로 연결할 수 있도록 사전으로 변환합니다. 그런 다음 사전의 각 키에 대한 값을 합산하여 for 루프를 적용합니다. 마지막으로 map 함수를 사용하여 합산된 값이 있는 목록을 다시 가져옵니다.

List = [(3,19),(7, 31), (7, 50), (1, 25.5), (1, 12)]
# Converting it to a dictionary
tup = {i:0 for i, v in List}
for key, value in List:
   tup[key] = tup[key]+value
# using map
result = list(map(tuple, tup.items()))
print(result)

위의 코드를 실행하면 다음과 같은 결과가 나타납니다.

출력

[(3, 19), (7, 81), (1, 37.5)]

컬렉션 사용

여기서 우리는 위와 유사한 접근 방식을 취하지만 컬렉션 모듈의 defaultdict 메서드를 사용합니다. 이제 지도 기능을 사용하는 대신 사전 항목에 액세스하여 목록으로 변환합니다.

from collections import defaultdict
# list of tuple
List = [(3,19),(7, 31), (7, 50), (1, 25.5), (1, 12)]
dict = defaultdict(int)
for key, value in List:
   dict[key] = dict[key]+value
# Printing output
print(list(dict.items()))

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

출력

[(3, 19), (7, 81), (1, 37.5)]