Ich versuche eine Liste schnell zu machen und möchte dies an Ort und Stelle tun.List slice python
Ich habe den folgenden Code und möchte im Allgemeinen wissen (dieses Problem kommt oft für mich, wie ich Listenprobleme auf der tatsächlichen Liste anstelle einer komplizierten Sequenz von Renditen oder mit seltsamen Indizes zu lösen versuchen) kann Listenausschnitt erlauben mir jemals, die Liste zu beeinflussen, von der es abgeleitet ist? Gibt es größere Auswirkungen für so etwas?
def partition(A,l,r):
p=A[l]
i=l+1
print(A)
for j in range(l+1,r):
if A[j]<p:
save=A[i]
A[i]=A[j]
A[j]=save
i+=1
save=A[i-1]
A[i-1]=A[l]
A[l]=save
return i-1
def quickSort(A,n):
if n>1:
split=partition(A,0,n)
quickSort(A[:split],len(A[:split]))
quickSort(A[split+1:],len(A[split+1:]))
print(A)
return A
A=[3,4,5,2,10,7,6,9,1]
print(quickSort(A,len(A)))
Ein Listenschnitt ist immer eine Kopie. Deshalb ist "l [:]" das Idiom, um eine ganze Liste zu kopieren. – Barmar
Gibt es eine Möglichkeit, Code wie diesen zu funktionieren? Kann ich tatsächlich auf die Elemente in meiner Liste A mit einem Listenausschnitt zeigen? –
Es gibt eine Diskrepanz in der Anzahl der Argumente Ihrer Funktion 'quickSort' –