Để đánh số thứ tự xuất hiện cho các phần tử trùng lặp trong danh sách, dùng list comprehension với enumerate và phương thức count.
Ví dụ
Minh họa:
my_list = ["python", "is", "fun", "python", "is", "fun", "python", "fun"]
print("Danh sách:")
print(my_list)
my_result = [value + str(my_list[:index].count(value) + 1) if my_list.count(value) > 1 else value for index, value in enumerate(my_list)]
print("Kết quả:")
print(my_result)
Kết quả
Danh sách: ['python', 'is', 'fun', 'python', 'is', 'fun', 'python', 'fun'] Kết quả: ['python1', 'is1', 'fun1', 'python2', 'is2', 'fun2', 'python3', 'fun3']
Giải thích
- Duyệt
enumerate(my_list)lấy index, value. - Nếu
my_list.count(value) > 1(phần tử trùng), nối thêm số lần xuất hiện tính đến index hiện tại. - Ngược lại giữ nguyên.