เมื่อจำเป็นต้องแปลงรายการเป็นชุดตามองค์ประกอบทั่วไปที่เฉพาะเจาะจง สามารถกำหนดวิธีการที่จะทำซ้ำผ่านชุดโดยใช้ 'แจกแจง' และวางเงื่อนไขเฉพาะบนองค์ประกอบ ใช้วิธี "สหภาพ" และวิธีการ "แผนที่"
ตัวอย่าง
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน
def common_elem_set(my_set): for index, val in enumerate(my_set): for j, k in enumerate(my_set[index + 1:], index + 1): if val & k: my_set[index] = val.union(my_set.pop(j)) return common_elem_set(my_set) return my_set my_list = [[18, 14, 12, 19], [9, 6, 2, 1], [54, 32, 21, 17], [18, 11, 13, 12]] print("The list is :") print(my_list) my_set = list(map(set, my_list)) my_result = common_elem_set(my_set) print("The result is :") print(my_result)
ผลลัพธ์
The list is : [[18, 14, 12, 19], [9, 6, 2, 1], [54, 32, 21, 17], [18, 11, 13, 12]] The result is : [{11, 12, 13, 14, 18, 19}, {9, 2, 6, 1}, {32, 17, 21, 54}]
คำอธิบาย
-
มีการกำหนดเมธอดชื่อ 'common_elem_set' ซึ่งรับรายการเป็นพารามิเตอร์
-
รายการมีการวนซ้ำโดยใช้การแจงนับ
-
เงื่อนไขถูกกำหนดโดยใช้ '&' และหากเป็นไปตามเงื่อนไข ผลลัพธ์จะถูกส่งคืน
-
นอกเมธอด รายการของรายการถูกกำหนดไว้
-
จะแสดงบนคอนโซล
-
มันถูกแปลงเป็นชุดโดยใช้วิธี 'แผนที่' แล้วแปลงเป็นรายการอีกครั้ง
-
สิ่งนี้ถูกกำหนดให้กับตัวแปร
-
ตอนนี้วิธีการนี้ถูกเรียกโดยการส่งผ่านตัวแปรนี้
-
เอาต์พุตจะแสดงบนคอนโซล