เมื่อจำเป็นต้องแปลงรายการเป็นชุดตามองค์ประกอบทั่วไปที่เฉพาะเจาะจง สามารถกำหนดวิธีการที่จะทำซ้ำผ่านชุดโดยใช้ 'แจกแจง' และวางเงื่อนไขเฉพาะบนองค์ประกอบ ใช้วิธี "สหภาพ" และวิธีการ "แผนที่"
ตัวอย่าง
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน
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' ซึ่งรับรายการเป็นพารามิเตอร์
-
รายการมีการวนซ้ำโดยใช้การแจงนับ
-
เงื่อนไขถูกกำหนดโดยใช้ '&' และหากเป็นไปตามเงื่อนไข ผลลัพธ์จะถูกส่งคืน
-
นอกเมธอด รายการของรายการถูกกำหนดไว้
-
จะแสดงบนคอนโซล
-
มันถูกแปลงเป็นชุดโดยใช้วิธี 'แผนที่' แล้วแปลงเป็นรายการอีกครั้ง
-
สิ่งนี้ถูกกำหนดให้กับตัวแปร
-
ตอนนี้วิธีการนี้ถูกเรียกโดยการส่งผ่านตัวแปรนี้
-
เอาต์พุตจะแสดงบนคอนโซล