Heim > Backend-Entwicklung > Python-Tutorial > So verwenden Sie Python, um den neuen Index nach dem Sortieren einer ungeordneten Liste zu erhalten

So verwenden Sie Python, um den neuen Index nach dem Sortieren einer ungeordneten Liste zu erhalten

WBOY
Freigeben: 2023-05-09 23:05:28
nach vorne
1827 Leute haben es durchsucht

Bei einer Liste ist das Sortieren sehr einfach. Um in Vorwärtsreihenfolge (von klein nach groß) zu sortieren, verwenden Sie

list.sort()
Nach dem Login kopieren

und um in umgekehrter Reihenfolge (von groß nach klein) zu sortieren, verwenden Sie

list.sort(reverse=True)
Nach dem Login kopieren

. Wenn Sie jedoch nicht darauf beschränkt sind Um eine sortierte Liste zu erhalten, möchten Sie auch den ursprünglichen Index aufzeichnen. Für ein numpy.array können Sie dann

np.argsort()
Nach dem Login kopieren

wie [1,3,2,5,6]#🎜🎜 verwenden #

nach dem Sortieren wird es zu [1,2,3,5,6]

Aber wir wollen wissen, wie der ursprüngliche Index des sortierten Ergebnisses lautet (die Antwort ist [0,2 ,1,3,4]), Sie können np.argsort()

Aber wenn es sich um eine einfache Liste handelt und Sie diesen Effekt erzielen möchten, können Sie

# enumerate(x)会自动构造一个tuple(a,b)
# 其中a是index,b是list里index下标对应的具体的值,后面的x是代表一个虚拟变量,即tuple(a,b)
sorted_list = sorted(enumerate(list), key=lambda x:x[1])  # x[1]是因为在enumerate(a)中,a数值在第1位
result = [x[0] for x in sorted_list]
Nach dem Login kopieren
#🎜🎜 verwenden #Das zurückgegebene Ergebnis ist der ursprüngliche Index# 🎜🎜#

Wenn Sie erreichen möchten, was im Titel steht, gehen Sie einen Schritt weiter, das heißt, Sie müssen beispielsweise nach dem Sortieren der Liste einen neuen Index erhalten , für [1,5,2,8,3,4] sollten Sie [0, 4,1,5,2,3]

erhalten. Dann können Sie

# enumerate(x)会自动构造一个tuple(a,b)
# 其中a是index,b是list里index下标对应的具体的值,后面的x是代表一个虚拟变量,即tuple(a,b)
# sorted_list = [(0,1),(2,2),(4,3),(5,4),(1,5),(3,8)]
sorted_list = sorted(enumerate(list), key=lambda x:x[1])  # x[1]是因为在enumerate(a)中,a数值在第1位
for i in range(len(sorted_list)):
    list[sorted_list[i][1]] = i
Nach dem Login kopieren
verwenden

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Python, um den neuen Index nach dem Sortieren einer ungeordneten Liste zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage