Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

หาสมาชิกทั่วไปในลิสต์ของลิสต์ใน Python

กำหนดลิสต์ที่สมาชิกเป็นลิสต์ ต้องการหาสมาชิกที่ปรากฏในทุก sublist (intersection)

ใช้ map และ set.intersection

แปลงแต่ละ sublist เป็น set แล้ว intersection ทั้งหมด

ตัวอย่าง

listA = [['Mon', 3, 'Tue', 7, 'Wed', 4], ['Thu', 5, 'Fri', 11, 'Tue', 7], ['Wed', 9, 'Tue', 7, 'Wed', 6]]
print("Given list of lists : \n", listA)
res = list(set.intersection(*map(set, listA)))
print("The common elements among inner lists : ", res)

ผลลัพธ์

Given list of lists : [['Mon', 3, 'Tue', 7, 'Wed', 4], ['Thu', 5, 'Fri', 11, 'Tue', 7], ['Wed', 9, 'Tue', 7, 'Wed', 6]]
The common elements among inner lists : ['Tue', 7]

ใช้ reduce และ lambda

reduce(lambda i, j: i & j, (set(n) for n in listA))

ตัวอย่าง

from functools import reduce
listA = [['Mon', 3, 'Tue', 7, 'Wed', 4], ['Thu', 5, 'Fri', 11, 'Tue', 7], ['Wed', 9, 'Tue', 7, 'Wed', 6]]
print("Given list of lists : \n", listA)
res = list(reduce(lambda i, j: i & j, (set(n) for n in listA)))
print("The common elements among inner lists : ", res)

ผลลัพธ์

Given list of lists : [['Mon', 3, 'Tue', 7, 'Wed', 4], ['Thu', 5, 'Fri', 11, 'Tue', 7], ['Wed', 9, 'Tue', 7, 'Wed', 6]]
The common elements among inner lists : ['Tue', 7]