python - 如何检查列表元素中是否存在值?
问题描述
我需要检查值,比如说 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")
解决方案
您正在将字符串与 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")
推荐阅读
- c# - 使用自定义 API 进行外部登录
- postcss - 嵌套的 @import CSS 语句未使用 rollup-plugin-postcss 进行汇总
- c# - 如何使用多个条件(可能为空)从数据库中优雅地选择行?
- r - 如何动态地将变量的未引用名称(而不是其值)传递给函数?
- javascript - 渲染器优于原生元素方法?
- python - Pandas 根据包含匹配替换值
- python-3.x - 执行创建数组和图形的python脚本的内存问题
- sql - 在 SQL 中动态生成查询
- python - writer.writeheader() - 无法识别传入标题的字典字段
- rx-java2 - 为什么我会收到 NetworkOnMainThreadException?