2017-12-16 6 views
0

Ich bin in der Lage, Auswahl Sortierung für jeden ersten Wert einer Liste zu implementieren, so z. list[0][0], list[1][0], list[2][0], list[3][0]Implementieren Auswahl Sortieren in einem bestimmten Index in einer geschachtelten Liste

Ich möchte eine Art implementieren, so dass es den zweiten Wert von jeder Liste, zum Beispiel so sortiert durch list[0][1],list[1][1],list[2][1],list[3][1]

Dies ist meine Liste:

[[130, 266.07], [46, 174.14], [169, 187.01], [179, 488.69], [53, 401.53], [128, 106.88], [97, 398.33], [152, 493.87], [20, 205.43], [94, 248.14]] 

Wenn sortiert wird es so aussehen:

[[20, 205.43], [46, 174.14], [53, 401.53], [94, 248.14], [97, 398.33], [128, 106.88], [130, 266.07], [152, 493.87], [169, 187.01], [179, 488.69]] 

ich den zweiten Wert der Liste sortieren möchten. Wie sollte ich meinen Code ändern, um dies zu erreichen? Jede Hilfe wird geschätzt.

Dies ist mein Sortieralgorithmus:

def swapElements(myList,i,j): 
    temp = myList[i] 
    myList[i] = myList[j] 
    myList[j] = temp 

def getMinIndex(list,start,stop): 

     minIndex = start 
     for j in range(start,stop): 
      if list[j]<list[minIndex]: 
       minIndex = j 

     return minIndex 

def selectionSort(list): 

    for i in range(len(list)): 

     minIndex = getMinIndex(list,i,len(list)) 

     swapElements(list, i, minIndex) 
    print(list) 

def SelectionSortPrice(list): 
    selectionSort(list) 
    #printList(list) ##part of a different function to format the list, irrelevant 

SelectionSortPrice(x) 
+0

Es ist wirklich nicht klar, dass Ihr Beispiel der sortierten Liste ist tatsächlich sortiert. Warum willst du 205.43 vor 174.14 und 401.53 sortieren? – jordanm

+0

Sie können sehen, dass der erste Wert jeder Liste sortiert ist, wie 20,46,53,94 usw. Ich möchte den zweiten Wert jeder Liste sortieren, so dass es 106,88,174.14,187.01 –

Antwort

1
sorted(yourlist, key= lambda num: num[1]) 
+0

??? Ja, er sagte, er wolle nach dem zweiten Wert der Liste sortieren ... um die ursprüngliche Ausgabe zu erhalten (dh sortiert nach erstem Wert): sortiert (listo, key = lambda num: num [0]) –

+0

Erwähnen Sie dieses Detail in deiner Antwort! –

Verwandte Themen