0

オブジェクトのリストに関連付けられたラベルのリストに適用できるように、リストの並べ替え方法を示すベクトルを生成したいと考えています。私はそれがmatlabで可能であることを知っていますが、このようなものはpythonに存在しますか?

例:

I can sort list1 in placeを使用して、2進数のリストと 2 進数list1 = ['10100', '10101', '01010', '00010', '00100'] の一連のラベルがあるとしますが、その並べ替えがどのように行われたかを知りたいので、その順列をラベルのリストにも適用します。colnames = ["A","B","C","D","E"]list.sort()

4

1 に答える 1

1

Something like this?

>>> listOne = ['10100', '10101', '01010', '00010', '00100']
>>> listTwo = ["A","B","C","D","E"]
>>> listThree = zip(listOne, listTwo)
>>> listThree.sort(key = lambda x : x[0])
>>> listThree
[('00010', 'D'), ('00100', 'E'), ('01010', 'C'), ('10100', 'A'), ('10101', 'B')]
>>> listOneSorted, listTwoSorted = zip(*listThree)
>>> listOneSorted
('00010', '00100', '01010', '10100', '10101')
>>> listTwoSorted
('D', 'E', 'C', 'A', 'B')

Or a one liner summing all the above up.

>>> listOneSorted, listTwoSorted = zip(*sorted(zip(listOne, listTwo), key = lambda x : x[0]))
于 2013-07-12T17:02:08.697 に答える