เมื่อจำเป็นต้องลบคอลัมน์ขององค์ประกอบที่ซ้ำกัน มีการกำหนดวิธีการที่สร้างชุดว่าง รายการถูกทำซ้ำ และหากไม่พบ รายการจะถูกเพิ่มเข้าไปในชุด
ตัวอย่าง
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน
from itertools import chain
def remove_dupes(my_sub):
my_string = set()
for i, elem in enumerate(my_sub):
if elem not in my_string:
my_string.add(elem)
else:
yield i
my_list = [[5, 1, 6, 7, 9], [6, 3, 1, 9, 1], [4, 2, 9, 8, 9], [5, 1, 6, 7, 3]]
print("The list is : ")
print(my_list)
K = 3
temp_idxs = set(chain.from_iterable(remove_dupes(sub) for sub in my_list))
my_result = [[elem for i, elem in enumerate( sub) if i not in temp_idxs] for sub in my_list]
print("The result is : ")
print(my_result) ผลลัพธ์
The list is : [[5, 1, 6, 7, 9], [6, 3, 1, 9, 1], [4, 2, 9, 8, 9], [5, 1, 6, 7, 3]] The result is : [[5, 1, 6, 7], [6, 3, 1, 9], [4, 2, 9, 8], [5, 1, 6, 7]]
คำอธิบาย
-
แพ็คเกจที่จำเป็นจะถูกนำเข้าสู่สภาพแวดล้อม
-
มีการกำหนดเมธอดชื่อ 'remove_dupes' ซึ่งรับรายการเป็นพารามิเตอร์
-
มีการสร้างชุดว่าง
-
องค์ประกอบในรายการจะถูกแจกแจง และหากไม่พบองค์ประกอบ จะถูกเพิ่มไปยังชุดว่าง
-
มิฉะนั้น จะเกิดตัววนซ้ำของการแจงนับ
-
นอกฟังก์ชัน รายการของรายการถูกกำหนดและแสดงบนคอนโซล
-
ค่าสำหรับ 'K' ถูกกำหนดไว้
-
วิธีการนี้เรียกว่าโดยการวนซ้ำ
-
มันถูกแปลงเป็นชุดและถูกกำหนดให้กับตัวแปร
-
อีกครั้ง จะมีการแจกแจง วนซ้ำ และเก็บไว้ในตัวแปรผลลัพธ์
-
ตัวแปรผลลัพธ์นี้จะแสดงเป็นเอาต์พุตบนคอนโซล