Python - 合并两个列表并保留第一个列表中的重复项


在使用 python 进行数据分析时,我们可能会遇到需要合并两个列表的情况。但是处理两个列表中存在的重复元素可能是一个挑战。在本文中,我们将学习如何合并两个列表,方法是保留来自第一个列表的所有元素,并仅保留来自第二个列表的唯一元素。

使用 extend

在这种方法中,我们取第一个列表并创建一个结果列表。然后我们设计一个 for 循环来检查第一个列表中的元素在第二个列表中是否存在,如果元素在第二个列表中找不到,则使用 extend 函数将其追加到结果列表中。

示例

# Given list A
listA = ['A', 'B', 'B','X']

# Guven list B
listB= ['B', 'X', 'Z', 'P']

# Creating the result set
res = list(listA)

# Extending result with list B
res.extend(i for i in listB if i not in res)

# Get result
print(res)

运行以上代码,会得到以下结果 -

输出

['A', 'B', 'B', 'X', 'Z', 'P']

使用 set

我们可以应用 set 函数来获取列表中存在的唯一元素。然后我们找出这两个列表中元素之间的差异,以仅获取来自第二个列表的唯一元素。最后,我们将此差异的结果添加到第一个列表中。

示例

# GIven First List
listA = ['A', 'B', 'B','X']

# Given Second list
listB= ['B', 'X', 'Z', 'P']

# makign the lists Uniq
listA_uniq = set(listA)
listB_uniq = set(listB)

# Capture unique elements from list B
diff_lists = listB_uniq - listA_uniq
res = listA + list(diff_lists)

# Get result
print(res)

运行以上代码,会得到以下结果 -

输出

['A', 'B', 'B', 'X', 'P', 'Z']

更新时间:28-12-2020

333 次浏览

职业启航

完成课程认证

开始
广告