我有一本以词典为价值观的词典。下面是我词典的结构
myD = {'key1': {'x' : 123, 'y' : 432},
'key2': {'x' : 456, 'y' : 565},
'key3': {'x' : 789, 'y' : 420},
...}
我需要比较这个字典的值(你可以看到我在每个值中都有相似的字典结构)并生成以下输出。策略是在值字段中遍历每个字典,为给定的键选择最小值并将其插入到新字典中。例如,如果我们考虑值字典中的x键,它的最小值是123
。所以我的新字典应该有x:123
。你知道吗
my_newD = {'x' : 123, 'y' : 420, ...}
我可以使用3个for循环来实现这一点,但是有没有什么优雅的方法可以用更少的for循环来实现这一点?你知道吗
另一种可能性是
pandas
(在优雅方面更好):我想出了两个循环:
EDIT:按照@Andriy Makukha的建议,删除了对外循环中
'key1'
的显式依赖编辑2:用
next(iter(myD.values()))
替换myD[list(myD.keys())[0]]
。不确定哪一个不那么神秘,但是使用
next
和iter
看起来更有效。感谢Leo K指出这一点!你知道吗
下面是一个使用
collections.defaultdict
的O(n)解:相关问题 更多 >
编程相关推荐