首页 > 解决方案 > 如何检查列表元素中是否存在值?

问题描述

我需要检查值,比如说 10.0.0.0/16 是否存在于以这种方式构造的列表中:

[{'Type': 'IPV4', 'Value': '216.137.32.0/19'}, {'Type': 'IPV4', 'Value': '13.54.63.128/26'}]

在 python 中完成此任务的最简单方法是什么?

下面的代码由于明显的原因不起作用......什么是正确有效的方法?

address = '10.0.0.0/16'
current_ips = [{'Type': 'IPV4', 'Value': '216.137.32.0/19'}, {'Type': 'IPV4', 'Value': '13.54.63.128/26'}]
if address in current_ips:
 print("I've found " + address=  + " in current IPs list")

标签: python

解决方案


您正在将字符串与 dicts 进行比较,请使用包含所有 ip 地址值的列表理解:

if address in [ip['Value'] for ip in current_ips]:

或者,使用any

if any(ip['Value'] == address for ip in current_ips):

此外,您的打印语句中有语法错误,应该是这样的:

print("I've found " + address + " in current IPs list")

推荐阅读