Python | Erweiterte Funktionen | Filter | Map | Reduzieren | Sortiert

Filter (func, iterable)

  • Rufen Sie die Eingabefunktion in einer Schleife auf
  • Filtern Sie die eingehenden Parameter. Wenn das Ergebnis der Funktion true zurückgibt, speichern Sie es. Wenn false zurückgegeben wird, tun Sie dies nicht. Außerdem wird ein Iterator zurückgegeben.
  • Anmerkungen:
    • Wenn der Iterator aufgebraucht ist, werfen Sie ihn weg, bis alle aufgebraucht sind.
    • Sie können list () verwenden, um in eine Liste zu konvertieren. Wenn diese nicht konvertiert wird, wird ein Iteratorobjekt zurückgegeben, das mit einer for-Schleife einzeln aufgerufen werden kann
# Utils / core.py convert_legacy_filters_into_adhoc () 
für
filt in Filter ( lambda x: x ist nicht ohne, fd [Filter]): fd [ ' adhoc_filters ' ] .append (to_adhoc (filt, ' SIMPLE ' , Klausel))

map (func, iterable) | redu (func, iterable)

  • map übergibt die übergebene Funktion nacheinander an jedes Element der Sequenz und gibt das Ergebnis als neuen Iterator zurück
Liste (Karte (str, [1,2,3,4,5,6,7,8]))
  • Reduzieren Wendet eine Funktion auf eine Sequenz an. Die Funktion muss zwei Parameter akzeptieren
  • Jedes Berechnungsergebnis führt weiterhin eine kumulative Berechnung mit dem nächsten Element durch
#等效写法
reduzieren (f, [x1, x2, x3, x4]) = f (f (f (x1, x2), x3), x4)

# exampl_1
von functionls importieren reduzieren
def add (x, y):
  Rückkehr x + y

reduzieren (addieren, [1,3,5,7,9])

# exampl_2: Konvertiere die Sequenz [1, 3, 5, 7, 9]in eine Ganzzahl 13579
def fn (x, y): gib
  x * 10 + y
reduziere zurück (fn, [1,3,5,7,9])

# exampl_2: Der String strist auch eine Sequenz, konvertiere str in int
DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} def str2int(s): def fn(x, y): return x * 10 + y def char2num(s): return DIGITS[s] return reduce(fn, map(char2num, s))

def char2num(s):
    return DIGITS[s] #使用lambda简化内容 def str2int(s): return reduce(lambda x, y: x * 10 + y, map(char2num, s))

sortiert (iterierbar, key = func)

  • Fügen Sie eine Schlüsselfunktion hinzu, um die Sortierung anzupassen. Die durch die Taste angegebene Funktion wirkt sich auf jedes Element der Liste aus und ordnet sie entsprechend den zurückgegebenen Ergebnissen neu
# Standardmäßig in aufsteigender Reihenfolge sortieren 
([36, 5, -12, 9, -21])
# Nach Absolutwert sortieren
([36, 5, -12, 9, -21])  

# Standardmäßig nach ASCII-Größe sortieren, ' Z '<' a ', also steht' Z 'an erster Stelle
sorted(['bob', 'about', 'Zoo', 'Credit'])
# 实现忽略大小写的排序方法: 先将字符串全部转化为大写or小写
sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)
# 实现反向排序
sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
# 实现L的按照名称排序
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
sorted(L, key=lambda x: x[0])

 

Ich denke du magst

Origin www.cnblogs.com/bennyjane/p/12696939.html
Empfohlen
Rangfolge