2016-04-28 11 views
0

タプルの最初の要素でソートして、あるタプルの最初の要素が等しい場合は、2番目の要素でソートします。 たとえば、私は[(5,1),(1,2),(1,1),(4,3)]を持っています。取得したい[(1,1),(1,2),(4,3),(5,1)]タプルの両方の要素を使ってタプルのリストを並べ替えるには?

どうすればよいでしょうか?

+1

可能な重複ホープ(HTTPを使用することができます[リスト/タプルのを(リスト/タプル)を並べ替えるには?]:// stackoverflowの.com/questions/3121979/how-to-sort-list-tuple-of-lists-tuples) – Florent

答えて

2
d = [(5,1),(1,2),(1,1),(4,3)] 
print(sorted(d,key=lambda x:(x[0],x[1]))) 

あなたはitemgetter

+0

このキーは必須ではありません。 – AKS

1
import operator 
l = [(5,1),(1,2),(1,1),(4,3)] 
print(sorted(l, key=operator.itemgetter(0,1)) 
0

より良い性能の使用をしたい場合は、リスト項目自体にソートしたいので、あなたが本当にkeyを指定する必要はありません。

>>> d = [(5,1),(1,2),(1,1),(4,3)] 
>>> sorted(d) 
[(1, 1), (1, 2), (4, 3), (5, 1)] 
0

ソート方法は、リストオブジェクトを返します、覚えておいてください。この場合、dはまだソートされていません。

あなたはDをソートしたい場合は、

>>>d.sort() 

が、それはの

関連する問題