แนวคิด
จาก matrix ให้ลบแถวที่คอลัมน์ K (0-based) มีค่าซ้ำกัน เก็บแถวแรกที่เจอของแต่ละค่าในคอลัมน์ K
ตัวอย่างโค้ด
my_list = [[45, 95, 26], [70, 35, 74], [87, 65, 23], [70, 35, 74], [67, 85, 12], [45, 65, 0]]
print("Matrix:", my_list)
K = 1 # คอลัมน์ที่ 1 (index 1)
print("K =", K)
result = []
seen = set()
for row in my_list:
key = row[K]
if key not in seen:
result.append(row)
seen.add(key)
print("หลังลบแถวที่คอลัมน์ K ซ้ำ:", result)
ผลลัพธ์
Matrix: [[45, 95, 26], [70, 35, 74], [87, 65, 23], [70, 35, 74], [67, 85, 12], [45, 65, 0]]
K = 1
หลังลบแถวที่คอลัมน์ K ซ้ำ: [[45, 95, 26], [70, 35, 74], [87, 65, 23], [67, 85, 12]]
คำอธิบาย
- แถว 0: col[1]=95 -> ใหม่ -> เก็บ
- แถว 1: col[1]=35 -> ใหม่ -> เก็บ
- แถว 2: col[1]=65 -> ใหม่ -> เก็บ
- แถว 3: col[1]=35 -> ซ้ำ -> ลบ
- แถว 4: col[1]=85 -> ใหม่ -> เก็บ
- แถว 5: col[1]=65 -> ซ้ำ -> ลบ
ใช้ Pandas (แนะนำสำหรับ DataFrame)
import pandas as pd
df = pd.DataFrame(my_list)
df = df.drop_duplicates(subset=K) # K = column index/name