【发布时间】:2018-01-07 16:07:01
【问题描述】:
我有一个列表l,其中包含多个字典l = [ d1, d2, ...., d100],其中每个字典都用键'id'、'address'、'price' 定义。
现在,我想从列表l 中取出所有字典d,其中键'price' 的值等于50。有比使用for 循环更快的方法吗?此处理已封装在其他 for 循环函数中,因此如果可能,我宁愿不要有两个 for 循环。
该函数的骨架现在看起来如下:
for ... (external for loop):
results = []
for d in l:
if d['price'] == 50:
results.append(d)
【问题讨论】:
-
没有什么比循环更快的了(虽然你的外观可以稍微修改一下,但你仍然需要循环),因为每个项目的价格都可以是 50,所以你需要检查所有字典。进一步优化 时间复杂度 的唯一方法是了解数据的结构。
-
我假设
l在每次外循环迭代时都不同?
标签: python python-3.x list dictionary