【超简便的Python】 提取两个列表的共同元素

可以直接食用的代码:

def duplicate_removal(self, A, B):
    return set(A).intersection(set(B))

Python如何提取两个列表的共同元素?也就是取两个集合的交集。除了常规的循环外,Python提供了一些更简洁更美的表达法,比如可以用列表解析的方法,或者用 Python 内置的集合运算。

比如已有如下两个列表,Python如何提取两个列表的共同元素?

[1, 2, 3, 4, 5]

和 

[4, 5, 6, 7, 8]

希望能得到

[4, 5]

方法一,列表解析 

可以用列表解析, List comprehension 下的方法:

A = [1, 2, 3, 4, 5]
B = [4, 5, 6, 7, 8]
print([x for x in A if x in B]) # [4, 5]

方法二,集合运算 

 还可以用Python 的集合(set)运算,s.intersection(t) 返回s与t的交集

A = [1, 2, 3, 4, 5]
B = [4, 5, 6, 7, 8]
print(set(A).intersection(set(B))) # {4, 5}

番外:笨重的方法(顺便看看不推荐使用):

lst1 = [11, 22, 33]
lst2 = [22, 33, 44]
a = set(lst1)   # 转成元祖
b = set(lst2)
c = (a & b)  # 集合c和b中都包含了的元素
print('两个列表中相同的元素是:', end='')
for i in c:
    print(i, end=' ')
# fo循环实现方法

lst1 = [11, 22, 33]
lst2 = [22, 33, 44]
for i in lst1:
    if i in lst2:
        print(i, end=' ')

# fo循环嵌套实现方法

lst1 = [11, 22, 33]
lst2 = [22, 33, 44]
for i in lst1:
    for j in lst2:
        if i == j:
            print(i, end=' ')

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2023年3月29日
下一篇 2023年3月29日

相关推荐