Python - 比较两个列表,以匹配项目包含不等于的项目?

Ale*_*exW 1 python

是否可以在列表项包含匹配字符串的两个列表中搜索匹配,不相等?

例如:

list_a = [
    'ip prefix-list PL_ABBA seq 5 permit 10.10.10.0/24',
    'ip prefix-list PL_ABBA seq 10 permit 10.20.10.0/24',
    ]

list_b = [
    '10.10.10.0/24',
    '10.20.10.0/24',
    '10.30.10.0/24',
    '10.40.10.0/24',
    ]
Run Code Online (Sandbox Code Playgroud)

10.30.10.0/24并且10.40.10.0/24在list_a中缺少所以我想将这两个丢失?

我可以从list_a中取出子网来生成new_list_a然后使用set进行比较?但是想知道是否有更简单的方法?

谢谢

tim*_*geb 5

您可以使用

>>> IPs = {s.rsplit(' ')[-1] for s in list_a}
>>> IPs
>>> {'10.10.10.0/24', '10.20.10.0/24'}
>>> [ip for ip in list_b if ip not in IPs]
>>> ['10.30.10.0/24', '10.40.10.0/24']
Run Code Online (Sandbox Code Playgroud)

IPs是一个set(用于O(1)成员资格测试)的ip地址,其中s.rsplit(' ')[-1]用于获取元素的IP部分list_a.