Computer >> Máy Tính >  >> Lập trình >> Python

Python - Nhận tổng các bộ giá trị có cùng giá trị đầu tiên

Tuples là các tập hợp hoặc mảng python được sắp xếp theo thứ tự nhưng không thể thay đổi. Nếu chúng ta nhận được một số bộ giá trị trong đó phần tử đầu tiên giống nhau, thì chúng ta có thể gặp tình huống khi chúng ta cần thêm phần tử thứ hai của những bộ giá trị có các phần tử đầu tiên bằng nhau.

Sử dụng bản đồ và vòng lặp for

Trong phương pháp này, trước tiên chúng ta sẽ xem xét một danh sách được tạo thành từ các bộ giá trị. Sau đó chuyển chúng sang từ điển để chúng ta có thể liên kết các phần tử trong bộ tuple dưới dạng cặp giá trị khóa. Sau đó, chúng tôi áp dụng vòng lặp for với tính tổng giá trị cho mỗi khóa trong từ điển. Cuối cùng, sử dụng chức năng bản đồ để lấy lại danh sách có các giá trị được tổng hợp.

Ví dụ

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)

Chạy đoạn mã trên cho chúng ta kết quả sau:

Đầu ra

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

Sử dụng bộ sưu tập

Ở đây chúng tôi thực hiện một cách tiếp cận tương tự như trên nhưng sử dụng phương thức defaultdict của mô-đun tập hợp. Bây giờ thay vì sử dụng chức năng bản đồ, chúng tôi truy cập các mục từ điển và chuyển đổi chúng thành một danh sách.

Ví dụ

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()))

Chạy đoạn mã trên cho chúng ta kết quả sau

Đầu ra

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