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.