Ich versuche, zip auf pythonische Weise zu verwenden, aber in Julia. Gegeben zwei Listen:
a =[2;3;4;5;6]
b =[0;7;8;9;10]
Ich möchte das folgende Listenverständnis erstellen:
c = [x for (x,y) in zip(a, b) if (x<y) else y]
das kehrt zurück c = [0;3;4;5;6]
. Stattdessen werde ich syntax: expected "]"
zurückgegeben.
list
conditional-statements
julia
list-comprehension
Marc Walton
quelle
quelle
x if cond else y
von Python ist anstelle voncond ? x : y
, also wäre der richtige Python[x if x<y else y for (x, y) in zip(a, b)]
.Antworten:
Sie müssen Ihr Verständnis so umschreiben, dass sich der Zustand im "Körper" des Generators befindet:
Die
if
Bedingung im Verständnis dient derzeit nur zum Filtern (obwohl es möglicherweise möglich ist, die gewünschte Bedeutung hinzuzufügen).quelle
ifelse
, was manchmal schneller sein kann (und Sie können es senden!).