0

2 番目の項目に並べ替える日付が含まれているタプルの辞書を並べ替えようとしています。辞書は次のようになります。

time_founded: {Soonr: 2005-5-1, SpePharm: 2006-9-1, and so on...}

現在、次のように日付を並べ替えようとしています。

dict = sortedLists[category]    
sortedtime = sorted(dict.iteritems(),  key=lambda  d: map(int, d.split('-')))

しかし、日付だけでなくタプル (Soonr: 2005-5-1) をソートしようとしているため、エラーが発生します。タプル全体ではなく日付のみを見るようにソートパラメータを更新するにはどうすればよいですか?

4

2 に答える 2

1

これを試して:

sortedtime = sorted(dict.iteritems(), key=lambda d: map(int, d[1].split('-')))

唯一の違いは[1]、アイテムの値の部分を選択することです。

于 2012-09-05T04:06:09.683 に答える
0

データ構造を制御できるかどうかはわかりませんが、制御できる場合は、データ構造の最初の要素を並べ替える必要のある日付に変更してください。Python は iterable を最初に見つけた要素でソートします。または、定義したキーでソートすることもできます

物事を単純化するため、辞書を含むタプルにすることをお勧めします。

>>> dates = [ ('2006-9-1', {Soonr:'2005-5-1'}),
              ('2006-8-9', {Soonr:'2005-8-28'})
            ]
>>> dates.sort() #will sort by the first element of the list items, if iterable...
>>> dates
[('2006-8-9', {Soonr:'2005-8-28'}), ('2006-9-1', {Soonr:'2005-5-1'})]
于 2012-09-05T04:04:03.850 に答える