Sortierfunktion Sortierfunktion Super detaillierte Verwendung

1.sort()-Funktion

Beispiel 1. Sortieren Sie die Werte in aufsteigender/absteigender Reihenfolge (die Sortierbedingung ist die Größe eines Einzelwerts, der einfachste Fall).

list1=[3,-4,2,4]
list1.sort()     # 默认升序排列.    list1.sort(reverse=True)为降序排列
print(list1)     # 输出[-4, 2, 3, 4]

Beispiel 2. Sortieren Sie nach dem Absolutwert von groß nach klein. Wenn der Absolutwert gleich ist, steht die positive Zahl vorne.

Beispielsweise ist die Liste [3,-4,2,4] das sortierte Ergebnis [4,-4,3,2].

(Die Sortierbedingung besteht darin, zuerst den absoluten Wert und dann den numerischen Wert zu berücksichtigen.)

list1=[3,-4,2,4]
list1.sort(key=lambda x:(abs(x),x),reverse=True)
# x代指list1中的每一个元素 先按照abs(x)排序,再按照x排序
print(list1)    # 输出[4,-4,3,2]

Hinweis: Die Funktion list.sort() basiert auf der Originalliste, und der Wert der Listenliste wurde zu diesem Zeitpunkt geändert

2. sortierte () Funktion

Beispiel 1. Zwei Fälle in der Funktion sort(): Sortieren nach Wert und Sortieren nach absolutem Wert

list1=[3,-4,2,4]
print(sorted(list1))  # 输出[-4, 2, 3, 4]
print(sorted(list1,key=lambda x:(abs(x),x),reverse=True)) # 输出[4, -4, 3, 2]

print(list1)          # 输出[3, -4, 2, 4]

Hinweis: sorted(list1) gibt eine neue Liste zurück, ohne den Wert der ursprünglichen Liste list1 zu ändern

Wenn Sie direkt an der Originalliste Änderungen vornehmen müssen, müssen Sie zusätzliche Werte zuweisen: list1=sorted(list1)

Beispiel 2.   Die zweidimensionale Liste wird in aufsteigender Reihenfolge nach dem zweiten Element sortiert (sortiert nach Tiergewicht, wobei 1t=1000kg)

Ursprüngliche Liste: s=[['polar bear', '0.75t'] , ['pinguin', '35kg'] , ['seal', '1.35t']]

Die sortierte Liste, die zurückgegeben werden muss: [['Penguin', '35kg'], ['Polar Bear', '0.75t'], ['Seal', '1.35t']]

s=[['北极熊', '0.75t'] , ['企鹅', '35kg'] ,  ['海豹', '1.35t']]
# 法一:使用sorted(list,key=...)
s1=sorted(s,key=lambda x:float(x[1][:-1]) * 1000 if x[1][-1] == 't' else float(x[1][:-2]))
print(s1)

# 法二:使用list.sort(key=...)
s.sort(key=lambda x:float(x[1][:-1]) * 1000 if x[1][-1] == 't' else float(x[1][:-2]))
print(s)

erklären:

x[1] bezieht sich auf das Element (zweites Element) mit Index=1 in jeder eindimensionalen Liste in der zweidimensionalen Liste.
Wenn x[1][-1]=='t', dann ist das Gewicht x[1 ][:- 1] benötigt *1000, umgerechnet in kg;
andernfalls nehmen Sie direkt die Zahl x[1][:-2] vor kg

Acho que você gosta

Origin blog.csdn.net/m0_63077499/article/details/127118287
Recomendado
Clasificación