簡體   English   中英

從python中的特定索引值對列表進行排序

[英]Sort list from a specific index value in python

我想從特定索引對python列表進行排序。 這是我想要實現的。 考慮列表al = [1,2,4,3]現在,我要做的是,從最后一個索引開始,返回並交換小於最后一個索引的數字,即索引1處的2。現在我的名單是[1,3,4,2]

但是,交換之后,我想對交換索引后的子列表進行排序。 而不是[1,3,4,2]我想要去[1,3,2,4]是否有蟒蛇任何方式僅排序的子列表? 現在,如果我對特定索引使用sort方法,例如: al[2:].sort()它創建一個新列表,而不是對其進行更改。

您可以在切片上使用sorted() ,然后將結果分配回切片:

al[2:] = sorted(al[2:])

如果您想就地執行此操作,並且取決於列表中的內容,可以使用numpy,其中使用基本索引總是返回原始數組的視圖

import numpy as np

al = np.array([1, 2, 4, 3])

n = np.where(al < al[-1])[0][-1]
al[n], al[-1] = al[-1], al[n]
al[n+1:].sort()

print(al)
[1 3 2 4]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM