1

信頼値を使用して、リスト内の最大の結果を見つけようとしています。

リストの例:

[[{u'categories': [u'health-beauty'], u'confidence': 0.3333333333333333},
 {u'categories': [u'activities-events'], u'confidence': 0.6666666666666666}]]

アクティビティ イベントディクショナリを返します

[[{u'categories': [u'home-garden'], u'confidence': 0.3333333333333333},
 {u'categories': [u'None of These'], u'confidence': 0.3333333333333333},
 {u'categories': [u'toys-kids-baby'], u'confidence': 0.3333333333333333}]]

3つすべてが等しいため、3つすべてを返します

[[{u'categories': [u'entertainment'], u'confidence': 1.0}]]

娯楽を返すだろう

私はpythonのmax関数を利用しようとしました:

seq = [x['confidence'] for x in d[0]]
max(seq)

しかし、それは値を返すだけです

4

4 に答える 4

2

独自の例のように最大信頼度を見つけてfilterから、すべての最大レコードのリストを作成するために使用できます。

max_conf = max(x['confidence'] for x in d[0])
filter(lambda x: x['confidence']==max_conf, d[0])

以下のコメントに記載されているように、filterリスト内包表記に置き換えることができます。

max_records = [x for x in d[0] if x['confidence'] == max_conf]
于 2012-11-12T08:47:37.073 に答える
0
max(d[0], key=lambda x: x['confidence'])

d[0]最高のconfidence属性を持つ要素全体を返します。

別の方法:

import operator as op

max(d[0], key=op.attrgetter('confidence'))
于 2012-11-12T08:28:45.937 に答える
0
sorted(d[0], key=lambda k: k['confidence'])[-1]

もう1つのアプローチです。d[0]また、最高のconfidence属性を持つ要素全体を返します。

于 2012-11-12T08:42:51.107 に答える
0
于 2012-11-12T08:55:28.783 に答える