我有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)
您sets可以比较列表:
missing = set(list1_original).difference(list2)
added = set(list2).difference(list1_original)
Run Code Online (Sandbox Code Playgroud)
请记住,输出是一个集合。要将输出转换为列表,您可以使用list(missing).