2017-04-14 4 views
-1

私は次のコードを持っている:オブジェクトを含むリストをソートする方法は?

lst = [] 

class DATA: 
    def __init__(self): 
     s = ['',''] 

def fillLst(): 
    d1 = DATA() 
    d1.s[0] = 'zebra' 
    d1.s[1] = 23 

    d2 = DATA() 
    d2.s[0] = 'airplane' 
    d2.s[1] = 435 

    d1 = DATA() 
    d1.s[0] = 'aira' 
    d1.s[1] = 211 


    lst.append(d1) 
    lst.append(d2) 
    lst.append(d3) 

私はリストを印刷するとき、私は、次を得る:

zebra - 23 
aira - 211 
airplane - 435 

今、私はこの出力を得るように、リストをソートしたい:

aira - 211 
airplane - 435 
zebra - 23 

したがって、Dataオブジェクトを含むリストをソートするにはどうすればよいですか?

+2

あなたはこれまでこれに取り組もうとしましたか?ここには多くの良い質問があり、また、本当に良い公式のソート方法もあります(https://docs.python.org/3/howto/sorting.html)。 –

+0

[リスト/タプルのソート(リスト/タプル)の方法は?](http://stackoverflow.com/questions/3121979/how-to-sort-list-tuple-of-lists-tuples) – Vallentin

+0

あなたが投稿したコードはタイプミス( 'self'、' d3'の代わりに 'd1')があり、実行さえできません。問題を引き起こした* exact *コードを貼り付けてください! –

答えて

3

あなたがこれを行うことができます:

sorted(lst, key=lambda data: data.s[0]) 

あなたはs[0]lst内の要素をソートしたい場合は

sorted関数には、ソートするキーを返す関数を指定できるパラメータkeyがあります。

sorted function in Python Document

ソート

([キー]反復可能【、逆])

...

キーは比較キーを抽出するために使用される一つの引数の機能を指定します各リスト要素から:key=str.lower。デフォルト値はNone(要素を直接比較)です。

関連する問題