python 两个list求重复项和非重复项
时间: 2023-09-15 14:24:17 浏览: 50
可以使用Python的set和intersection方法来求解两个list的重复项,使用set和difference方法来求解两个list的非重复项。
比如,假设有两个list a和b,可以使用以下代码求解它们的重复项和非重复项:
```python
a = [1, 2, 3, 4, 5]
b = [4, 5, 6, 7, 8]
# 求解重复项
intersection = set(a).intersection(set(b))
print("重复项:", list(intersection))
# 求解非重复项
difference = set(a).difference(set(b)).union(set(b).difference(set(a)))
print("非重复项:", list(difference))
```
输出结果为:
```
重复项: [4, 5]
非重复项: [1, 2, 3, 6, 7, 8]
```
其中,set方法可以将list转换为集合,intersection方法可以求解两个集合的交集,difference方法可以求解两个集合的差集。注意,最后需要使用union方法将两个差集合并起来。
相关问题
两个list的合并python且去除重复项
可以使用set去除重复项,然后将两个list合并,最后再转换回list。以下是示例代码:
```python
list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
# 将两个list合并,并转换成set去除重复项
merged_set = set(list1 + list2)
# 再将set转换回list
merged_list = list(merged_set)
print(merged_list) # 输出 [1, 2, 3, 4, 5, 6]
```
注意,set是无序的,所以合并后的list也是无序的。如果需要保留顺序,可以使用OrderedDict。
python的lambda表达式实现两个list去掉重复元素
可以使用 lambda 表达式和 set() 函数来去除两个列表中的重复元素,示例代码如下:
```python
list1 = [1, 2, 3, 4, 4, 5]
list2 = [4, 5, 6, 7, 8]
result = list(filter(lambda x: x not in set(list2), list1)) + list(filter(lambda x: x not in set(list1), list2))
print(result)
```
输出结果为:
```
[1, 2, 3, 6, 7, 8]
```
这个代码的逻辑是,先使用 set() 函数将 list2 转换为集合,然后使用 filter() 函数和 lambda 表达式过滤掉 list1 中已经存在于集合中的元素,再将结果与同样经过过滤的 list2 相加,得到最终结果。