私は次のようなリストを持っています
listOfLists = [['key2', 1], ['key1', 2], ['key2', 2], ['key1', 1]]
内部リストの最初の項目がキーです。内部リストの2番目の項目は値です。
[['key1', 1], ['key2', 1]]
その値が同じキーとキーによる出力グループを持つリストの中で最小であるというリストを与える出力を取得したい(私の英語は貧弱なので、SQL構文の概念を使用してください)
私はこのようなコードを書きました:
listOfLists = [['key2', 1], ['key1', 2], ['key2', 2], ['key1', 1]]
listOfLists.sort() #this will sort by key, and then ascending by value
output = []
for index, l in enumerate(listOfLists):
if index == 0:
output.append(l)
if l[0] == listOfLists[index - 1][0]:
#has the same key, and the value is larger, discard
continue
else:
output.append(l)
これは十分に賢くないようですこの作業を行うためのより簡単な方法はありますか?