比较两个列表并输出缺少和多余的元素(Python)

Mic*_*ael 0 python

我有2个前缀列表(已排序),想在Python中进行比较,以便我可以输出原始列表中缺少的元素和添加的元素。

例如。

list1_original = ['1.1.1.1/24','2.2.2.2/24','3.3.3.3/24','4.4.4.4/24']
list2 = ['3.3.3.3/24','4.4.4.4/24','5.5.5.5/24','6.6.6.6/24']
Run Code Online (Sandbox Code Playgroud)

我想比较2个列表,并在list1_original中输出add / remove元素。即:

1.1.1.1/24, 2.2.2.2/24 = missing
5.5.5.5/24, 6.6.6.6/24 = added
Run Code Online (Sandbox Code Playgroud)

小智 6

如果给定列表中没有重复项,则可以使用集合及其“-”运算符:

list1 = ['1.1.1.1/24', '2.2.2.2/24', '3.3.3.3/24', '4.4.4.4/24']
list2 = ['3.3.3.3/24', '4.4.4.4/24', '5.5.5.5/24', '6.6.6.6/24']

set1 = set(list1)
set2 = set(list2)

missing = list(sorted(set1 - set2))
added = list(sorted(set2 - set1))

print('missing:', missing)
print('added:', added)
Run Code Online (Sandbox Code Playgroud)

此打印

missing: ['1.1.1.1/24', '2.2.2.2/24']
added: ['5.5.5.5/24', '6.6.6.6/24']
Run Code Online (Sandbox Code Playgroud)


rac*_*hwa 6

sets可以比较列表:

missing = set(list1_original).difference(list2)
added = set(list2).difference(list1_original)
Run Code Online (Sandbox Code Playgroud)

请记住,输出是一个集合。要将输出转换为列表,您可以使用list(missing).