[英]PYTHON INTERSECTION WITH 3 LISTS
我必須找到具有相同格式的 3 個列表之間的交集(?)
順便說一下,我知道如何做兩個列表,如下所示:
l=list(input("input:"))
m=list(input("input:"))
def intersect(l, m):
return list(set(l) & set(m))
但它似乎不適用於 3 個列表!!!
a = list(input("Input:"))
b = list(input("Input:"))
c = list(input("Input:"))
def intersect(a, b, c):
return list(set(a) & set(b) & set(c))
print intersect(a, b, c)
例如,如果我輸入 123 213 312 它應該返回
[1, 3]
set()
不關心順序所以set([1, 2, 3])
和set([2, 1, 3])
是同一個 set 和set([1, 2, 3]) & set([2, 1, 3])
給出{1,2,3}
您必須使用zip(a,b)
來獲取對和檢查對
a = list("123")
b = list("213")
c = list("312")
def intersect(a, b, c):
p = [x for x, y in zip(a, b) if x==y]
q = [x for x, y in zip(b, c) if x==y]
r = [x for x, y in zip(c, a) if x==y]
return p + q + r
print(intersect(a, b, c))
結果:
['3', '1']
您最終可以對其進行排序以獲得['1', '3']
return sorted(p + q + r)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.