Mam nieposortowaną listę liczb całkowitych na liście Pythona. Chcę posortować elementy w podzbiorze pełnej listy, a nie całą pełną listę. Chcę również posortować listę w miejscu, aby nie tworzyć nowych list (robię to bardzo często). Początkowo próbowałSortowanie podlisty w obrębie listy Pythona liczb całkowitych
p[i:j].sort()
ale to nie zmienia zawartości p przypuszczalnie dlatego, że nowa lista powstała, sortowane, a następnie wyrzuca się bez wpływania na zawartość oryginalnej listy. Mogę, oczywiście, utworzyć własną funkcję sortowania i użyć pętli do wybrania odpowiednich elementów, ale nie jest to pythonic. Czy istnieje lepszy sposób sortowania podlist na miejscu?
+1: Pokonaj mnie sekundami dzięki prostszemu rozwiązaniu. –
Nadal nie jest to, czego żąda operator, ale co zamierzałem zasugerować. Musi jeszcze utworzyć osobną tablicę podrzędną i posortować ją przed przypisaniem jej do 'p [i: j]'. Od jakiegoś czasu myślałem, że powinna być opcja sort(), aby określić zakres do sortowania. To wyeliminowałoby niepotrzebne zużycie pamięci. –
To z pewnością odnosi się do "jak", ale czy nie spowoduje to utworzenia co najmniej 2 nowych list? Jeden dla p [i: j] w środku posortowany, a drugi dla wyniku posortowanego. – sizzzzlerz