Betrachten Sie die Pipe-Verarbeitung in einer funktionalen Sprache in Python.
Das Ideal ist
result = [3,1,2] |> sorted |> reversed ## [3,2,1]
--Wrap mit Werten und Funktionen in Ihrer eigenen Klasse.
PIPE.py
# >>Rohrbearbeitung mit
class PIPE:
def __init__(self, val):
self.val = val
def __rshift__(self, other):
if callable(other.val):
return PIPE(other.val(self.val))
return other.val
def __str__(self):
return str(self.val)
Usage
result = PIPE([3,1,2]) >> PIPE(sorted)
print(result) # [1, 2, 3]
sample1
#Sowohl Lambda als auch Funktion können verwendet werden.
#auch drucken.
_ = PIPE([3,1,2]) \
>> PIPE(sorted) \
>> PIPE(reversed) \
>> PIPE(lambda lst: [l+1 for l in lst]) \
>> PIPE(list) \
>> PIPE(print) # [4, 3, 2]
sample2
##Wenn Sie das Format mit Druck verwenden möchten.
_ = PIPE({"K0":1, "K1":2}) \
>> PIPE(lambda d: sum([v for k,v in d.items()])) \
>> PIPE(lambda s: "sum is {}".format(s)) \
>> PIPE(print) # sum is 3
sample3
_ = PIPE({"K0":1, "K1":2}) \
>> PIPE(lambda d: {k:v+1 for k,v in d.items()}) \
>> PIPE(lambda d: {k.replace("K", "KEY"): v for k,v in d.items()}) \
>> PIPE(print) # {'KEY0': 2, 'KEY1': 3}
print (Liste (umgekehrt (sortiert ([3,1,2]))))
.Recommended Posts