Untuk senarai, pengisihan adalah sangat mudah. Untuk pengisihan ke hadapan (dari kecil ke besar) gunakan
list.sort()
dan untuk pengisihan terbalik (dari besar ke kecil) gunakan
list.sort(reverse=True)
Tetapi jika anda tidak terhad untuk mendapatkan senarai diisih, anda juga ingin merekod tanda asal seterusnya, kemudian untuk numpy.array, anda boleh menggunakan
np.argsort()
Contohnya, [1,3,2,5,6]
menjadi [1,2 ,3,5 selepas mengisih ,6]
Tetapi jika kita ingin tahu apakah subskrip asal hasil yang diisih (jawapannya ialah [0,2,1,3,4]), kita boleh gunakan np.argsort()
Tetapi jika ia adalah senarai mudah dan anda ingin mencapai kesan ini, anda boleh menggunakan
# 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]
Hasil yang dikembalikan ialah indeks asal
Jika anda ingin mencapai satu dalam tajuk, pergi selangkah lebih jauh , iaitu, untuk mendapatkan subskrip baharu selepas mengisih senarai, contohnya, untuk [1,5,2,8,3,4], anda harus mendapatkan [ 0,4,1,5,2,3]
Kemudian anda boleh menggunakan
# 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
Atas ialah kandungan terperinci Cara menggunakan Python untuk mendapatkan indeks baharu selepas mengisih senarai yang tidak teratur. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!