Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Gom nhóm tuple trong list theo giá trị đầu tiên trong Python


Trong hướng dẫn này, ta viết chương trình gom tất cả tuple có cùng phần tử đầu tiên. Xem ví dụ để hiểu rõ.

Đầu vào

[(1, 2, 3), (1, 4, 5), (3, 4, 1), (3, 4, 2)]

Đầu ra

[(1, 2, 3, 4, 5), (3, 4, 1, 4, 2)]

Các bước giải quyết:

  • Khởi tạo list.
  • Khởi tạo dictionary rỗng.
  • Lặp qua list các tuple.
  • Kiểm tra phần tử đầu của tuple có làm key trong dictionary không.
  • Nếu có, thêm giá trị tuple hiện tại bỏ phần tử đầu vào giá trị trước.
  • Nếu không, khởi tạo key với các phần tử tuple hiện tại kể cả phần tử đầu.
  • In giá trị dict dạng list.

Ví dụ

# Khởi tạo list
tuples = [(1, 2, 3), (1, 4, 5), (3, 4, 1), (3, 4, 2)]
# Dict rỗng
result = {}
# Lặp qua tuple
for sub_tuple in tuples:
    # Kiểm tra phần tử đầu tuple trong result
    if sub_tuple[0] in result:
        # Thêm giá trị tuple hiện tại bỏ phần tử đầu
        result[sub_tuple[0]] = (*result[sub_tuple[0]], *sub_tuple[1:])
    else:
        # Thêm tuple
        result[sub_tuple[0]] = sub_tuple
# In kết quả dạng list
print(list(result.values()))

Kết quả

Nếu chạy mã trên, bạn sẽ nhận được kết quả sau.

[(1, 2, 3, 4, 5), (3, 4, 1, 4, 2)]

Kết luận

Bạn có thể giải quyết theo cách khác. Nếu có thắc mắc, hãy đề cập ở phần bình luận.