bob*_*nto 1 python dictionary filter
是的,这个网站上有很多关于装配python字典的问题.但是我所看到的一切都没有达到我想做的事情.所以,我有一本字典.它包含一些列表和一些数据值列表.就像是
data_and_time = {"time":['2:30','2:45','3:25','5:15','7:21','8:22'],
"data":[ 5., 7., 2., 3., 8., 10.]}
Run Code Online (Sandbox Code Playgroud)
我想过滤这个,例如,我只有大于或等于5的数据值.结果是:
data_and_time_5 = {"time":['2:30','2:45','7:21','8:22'],
"data":[ 5., 7., 8., 10.]}
Run Code Online (Sandbox Code Playgroud)
我可以想到几种方法来做到这一点 - 所有这些都非常难看并且需要多行代码.我想要一种优雅,可读的方式来做到这一点.python词典有这样的方法吗?(顺便说一下,时间表示为字符串是完全偶然的,这只是我在这里表达问题的一种紧凑方式.)谢谢.
我首先将数据存储为更好的,类似JSON的格式:
data = [dict(zip(data_and_time, val)) for val in zip(*data_and_time.values())]
Run Code Online (Sandbox Code Playgroud)
它看起来像这样:
>>> data
[{'data': 5.0, 'time': '2:30'},
{'data': 7.0, 'time': '2:45'},
{'data': 2.0, 'time': '3:25'},
{'data': 3.0, 'time': '5:15'},
{'data': 8.0, 'time': '7:21'},
{'data': 10.0, 'time': '8:22'}]
Run Code Online (Sandbox Code Playgroud)
现在,您可以更轻松地过滤对象:
>>> [item for item in data if item['data'] >= 5.0]
[{'data': 5.0, 'time': '2:30'},
{'data': 7.0, 'time': '2:45'},
{'data': 8.0, 'time': '7:21'},
{'data': 10.0, 'time': '8:22'}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
148 次 |
| 最近记录: |