我刚刚了解了列表推导,这是在一行代码中获取数据的一种非常快速的方法。但有些事情困扰着我。
在我的测试中,列表中有这样的字典:
[{'y': 72, 'x': 94, 'fname': 'test1420'}, {'y': 72, 'x': 94, 'fname': 'test277'}]
列表理解 s = [ r for r in list if r['x'] > 92 and r['x'] < 95 and r['y'] > 70 and r['y'] < 75 ]
完美地工作(事实上,这就是这一行的结果)
无论如何,然后我意识到我并没有真正在我的其他项目中使用列表,我使用的是字典。像这样:
{'test1420': {'y': '060', 'x': '070', 'fname': 'test1420'}}
这样我可以简单地用 var['test1420'] = ...
编辑我的字典
但是列表推导对此不起作用! 而且我不能以这种方式编辑列表,因为你不能分配这样的索引。
还有其他方法吗?
最佳答案
你可以这样做:
s = dict([ (k,r) for k,r in mydict.iteritems() if r['x'] > 92 and r['x'] < 95 and r['y'] > 70 and r['y'] < 75 ])
这需要一个你指定的字典并返回一个“过滤”的字典。
关于字典中字典的Python列表理解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3231250/