0

次のようなリストのリストがあるとします。

lists=[[3,2,1,4],[6,4,2,8],[9,6,3,12]]

並べ替えたい場合は、次lists[0]のように並べ替える必要があります。

lists=[[1,2,3,4],[2,4,6,8],[3,6,9,12]] #can be another variable

3 つのリストのリストを持つ:

list1,list2,list3=(list(t) for t in zip(*sorted(zip(lists[0], lists[1],lists[2]))))

しかし、それは特定の解決策であり、リスト内の n 個のリストはより一般的です。変数は次
のように作成されました。lists

lists = [[] for x in xrange(n)]

そして、値が追加されました。

実際にはすべての値は数値 (float または int) ですが、これはより適切に説明できるかもしれません。

lists=[[3,2,1,4],["three","two","one","four"],["tres","dos","uno","cuatro"]]

それを並べ替えて、これで終わる方法を知りたいです:

[[1,2,3,4],["one","two","three","four"],["uno","dos","tres","cuatro"]]
4

1 に答える 1

4

これは、シュワルツ変換を使用するのが最善である可能性が低いケースです。

>>> lists=[[3,2,1,4],["three","two","one","four"],["tres","dos","uno","cuatro"]]
>>> [[x for i, x in sorted(zip(lists[0], sublist))] for sublist in lists]
[[1, 2, 3, 4], ['one', 'two', 'three', 'four'], ['uno', 'dos', 'tres', 'cuatro']]
于 2013-04-21T21:42:53.893 に答える