python - 从元组内的多个字典中获取项目
问题描述
我有以下基于PythonMETAR
(航空中的某种天气编码)库的代码:
from PythonMETAR import *
report = Metar('LRSM')
properties = report.getAttribute('cloud')
print(report)
print(properties)
它返回我以下结果:
LRSM 071100Z 28005KT 220V320 9000 -RA FEW006 BKN025 BKN035 12/11 Q1010 R01/29//95
({'code': 'FEW', 'meaning': 'Few', 'oktaMin': 1, 'oktaMax': 2, 'altitude': 600, 'presenceCB': False, 'presenceTCU': False}, {'code': 'BKN', 'meaning': 'Broken', 'oktaMin': 5, 'oktaMax': 7, 'altitude': 2500, 'presenceCB': False, 'presenceTCU': False})
我想创建一段代码,它将从元组中查找每个字典,如果值为and则properties
返回我。除此之外,如果我想查看唯一的and并检查这些值是否小于.TRUE
code
BKN
OVC
TRUE
altitude
BKN
OVC
1500
现在我并不真正害怕 IF 语句,但目前,经过一些谷歌搜索后,我坚持从字典中获取这些特定项目,并最终将这些项目与altitude
值联系起来。
解决方案
您可以使用列表推导。
seq = ({'code': 'FEW', 'meaning': 'Few', 'oktaMin': 1, 'oktaMax': 2, 'altitude': 600, 'presenceCB': False, 'presenceTCU': False},
{'code': 'BKN', 'meaning': 'Broken', 'oktaMin': 5, 'oktaMax': 7, 'altitude': 2500, 'presenceCB': False, 'presenceTCU': False})
res = [i['code'] in ('BKN', 'OVC') and i['altitude'] < 1500 for i in seq]
print(res)
输出
[False, False]
推荐阅读
- rabbitmq - How to turn off retries in aio-pika
- c++ - Problem while learning how header files work in c++ (Undefined symbols for architecture x86_64 + linker command failed with exit code 1)
- kubernetes - KubeDNS no route to host for kubernetes.default
- java - How to do this using collections/ stream api
- azure-devops - 为什么我不能在 VSBuild 任务中直接指定多个配置/平台?
- r - 关于 fct_relevel 和 scale_fill_manual
- java - socketio.emit 不起作用 netty socketio
- java - 夸库斯多
不引用字符串 - xamarin - MvvmCross 从 6.4.2 升级到 8.0.1
- sql - 仅选择两列重复时的最后一个日期