如果我们正在寻找两个列表的交集,我们通常会这样做
b1 = set(aList).intersection(aList2)
print(b1)
然而,如果我们想要获得长度为4的两个单词列表的交集,那该怎么办?
例如。
所以,如果
aList = ["james", "kobe", "ball"]
和
aList2 = ["jimmy","james","kobe"]
我希望b1是= [" kobe"]因为kobe长度为4而詹姆斯不是
我们是否需要先从列表中取出长度为4的所有单词?或者在做交叉时有没有办法检查?
答案 0 :(得分:2)
<强>演示强>:
>>> aList = ["james", "kobe", "ball"]
>>> aList2 = ["jimmy","james","kobe"]
>>> b1 = set(aList).intersection(aList2)
>>> b1
set(['james', 'kobe'])
>>> result = [i for i in b1 if len(i)==4]
>>> result
['kobe']
>>>
仅传递交叉点操作的长度为4的单词。
从tmp
创建aList
列表,其中只有长度为4的字词。
演示:
>>> aList = ["james", "kobe", "ball"]
>>> aList2 = ["jimmy","james","kobe"]
>>> tmp = [i for i in aList if len(i)==4]
>>> tmp
['kobe', 'ball']
>>> b1 = set(tmp).intersection(aList2)
>>> print b1
set(['kobe'])
>>>
答案 1 :(得分:1)
您可以使用comprehension:
four_letter_intersection = {
word for word in set(list_a).intersection(list_b) if len(word) == 4
}