Khi cần xóa các hàng trùng lặp dựa trên giá trị tại cột K (giữ hàng đầu tiên), ta dùng vòng lặp và list append() theo dõi giá trị đã thấy.
Ví dụ
my_list = [[45, 95, 26], [70, 35, 74], [87, 65, 23], [70, 35, 74], [67, 85, 12], [45, 65, 0]]
print("Danh sách:")
print(my_list)
K = 1
print("Cột K =", K)
my_result = []
my_mem = []
for index in my_list:
if index[K] not in my_mem:
my_result.append(index)
my_mem.append(index[K])
print("Kết quả (không trùng cột K):")
print(my_result)
Kết quả đầu ra
Danh sách: [[45, 95, 26], [70, 35, 74], [87, 65, 23], [70, 35, 74], [67, 85, 12], [45, 65, 0]] Cột K = 1 Kết quả (không trùng cột K): [[45, 95, 26], [70, 35, 74], [87, 65, 23], [67, 85, 12]]
Giải thích
- K=1 → cột thứ 2 (0-based): giá trị 95, 35, 65, 35, 85, 65.
- Duyệt hàng: nếu giá trị cột K chưa trong my_mem → giữ hàng, thêm vào my_mem.
- Hàng 3 (index 3): cột K=35 đã có → bỏ qua.
- Hàng 5 (index 5): cột K=65 đã có → bỏ qua.
Pandas equivalent: df.drop_duplicates(subset=df.columns[K], keep='first').
Tối ưu: Dùng set cho my_mem: if index[K] not in seen: seen.add(index[K]); result.append(index).