Khi cần tạo các tuple có cùng số chữ số (equi-digit tuples), ta dùng toán tử // (chia nguyên) và cắt list (list slicing).
Ví dụ
my_list = [5613, 1223, 966143, 890, 65, 10221]
print("Danh sách là:")
print(my_list)
my_result = []
for sub in my_list:
mid_index = len(str(sub)) // 2
element_1 = str(sub)[:mid_index]
element_2 = str(sub)[mid_index:]
my_result.append((int(element_1), int(element_2)))
print("Danh sách kết quả:")
print(my_result)
Kết quả đầu ra
Danh sách là: [5613, 1223, 966143, 890, 65, 10221] Danh sách kết quả: [(56, 13), (12, 23), (966, 143), (8, 90), (6, 5), (10, 221)]
Giải thích
- Định nghĩa danh sách và hiển thị.
- Tạo danh sách rỗng lưu kết quả.
- Duyệt danh sách, lấy chỉ số giữa bằng
len(str(sub)) // 2. - Dùng cắt chuỗi lấy phần trước và sau chỉ số giữa.
- Gán vào hai biến, chuyển sang int, thêm vào tuple, append vào kết quả.
- Hiển thị kết quả.
Lưu ý: Với số chữ số lẻ, phần trước sẽ ngắn hơn phần sau 1 chữ số.