簡體   English   中英

在python中交叉兩個單詞列表

[英]intersect two lists of words in python

我想在python中找到兩個列表的交集。 我有一些看起來像這樣的東西:

>>> q = ['apple', 'peach', 'pear', 'watermelon', 'strawberry']
>>> w = ['pineapple', 'peach', 'watermelon', 'kiwi']

我想找到這樣的東西:

t = ['peach', 'watermelon']

我知道這是一個簡單的問題,但我對python不熟悉 - 有沒有人有任何建議?

intersection()方法可用於集合 ,可以從列表輕松創建。

ETA:如果你想要一份清單......

q = ['apple', 'peach', 'pear', 'watermelon', 'strawberry']
w = ['pineapple', 'peach', 'watermelon', 'kiwi']
t = list(set(q) & set(w))

現在是:

['watermelon', 'peach']

這樣做的首選方法是通過集合交集

list(set(q) & set(w))

如果列表很短,則列表理解應該有效。

t = [x for x in q if x in w]

但是,請注意,這是O(n^2) ,因此對於長列表來說效率不高。

這里討論的是, 交叉點的工作速度要快一些,所以你可以使用:

q = ['apple', 'peach', 'pear', 'watermelon', 'strawberry']
w = ['pineapple', 'peach', 'watermelon', 'kiwi']
set(q).intersection(w)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM