2013-03-12 117 views
0

我正在使用Foursquare Python库。具体而言,我正在与特价合作。特价商品有一个名为Items的关键字,它是一个列表。列表中的对象都是字典。它看起来像这样:如何遍历字典列表并挑选一个最高值

list = [{'foo': 'ex', 'bar': 'ex', 'likes': {'count': 'x'}}, {'foo': 'ex', 'bar': 'ex', 'likes': {'count': 'x'}}, ...] 

我想遍历这个列表,并比较喜欢的计数。无论字典对象最喜欢什么,我都想抽出并存储一个变量。我怎样才能在Python中做到这一点?

+0

不要命名你的变量'list' - 那么你不能用它作为内置函数。 – Jared 2013-03-12 18:33:31

回答

1

这可以用max(iterable, key=...)来完成,像

result = max(the_list, key=lambda item:item['likes']['count']) 
+0

另外,由于书面项目['likes'] ['count']是一个字符串 - 虽然实际情况可能并非如此,您可能需要使用'... int(item ['likes'] ['count' ])' – IamAlexAlright 2013-03-12 18:35:24

+0

太棒了,这个效果很好。非常感谢。我希望我能够回答你的答案! – 2013-03-12 19:14:55

0

您可以使用此代码为:

print max(your_list, key=lambda val: int(val.get('likes', {}).get('count', 0))) 

附: 请勿为您的变量使用保留名称!