2017-09-22 12 views
0

を取る:ソート辞書&Iは、このような構造を持つ長い辞書持つ最初のエントリパイソン

{'key': (integer1, 'string1')} 

を、私はinteger1 &で辞書をソートする最初のエントリを取ります。ワンライナーに...

first_entry = {} 
first_entry[keys[0]] = value 

sorted_by_integer = OrderedDict(sorted(tuple_dict.items(),key=lambda x:x[0], reverse=True)) 
keys = list(sorted_by_integer) 
value = sorted_by_integer[keys[0]] 
first_entry = {} 
first_entry[keys[0]] = value 

私の質問は、私が凝縮することができますされています。ここでは

は、私がこれまで持っている何ですか? 1行の式を使用

+0

「次の(iter(sorted_by_integer.items()))」を試してください。この出力は十分ですか? – pylang

答えて

1

は、キーのソートと値の整数を使用してソートされた順序で辞書のキーを取得することができます

s = {'key': (integer1, 'string1')} 
new_data = [a for (a, (b, c)) in sorted(s.items(), key=lambda x: x[-1][0])] 
+0

私はこれを試してみると、キーをリストに戻すだけです。何か不足していますか? – e1v1s

+0

@ e1v1sはい、ソートされたキーしか表示されません。それはあなたが探しているものではない場合は、正確に指定することができますか? – Ajax1234

0
from collections import OrderedDict 
s = {'key': (4, 'string1'), 'key2':(2, 's2'), 'key3':(3, 's3')} 
s = dict(sorted(s.items(), key=lambda x: x[-1][0])[:1]) 
print s 

出力:
{」 key2 ':(2、' s2 ')}

+0

それはあなたが欲しいものですか? @ e1v1s – QuantumEnergy

関連する問題