Есть ли в Юлии понимание списка "если бы еще"? - PullRequest
7 голосов
/ 03 ноября 2019

Я пытаюсь использовать zip по-питонски, но в Джулии. Учитывая два списка:

a =[2;3;4;5;6]
b =[0;7;8;9;10]

Я хотел бы создать следующее понимание списка,

c = [x for (x,y) in zip(a, b) if (x<y) else y]

, которое возвращает c = [0;3;4;5;6]. Вместо этого я возвращаю syntax: expected "]".

1 Ответ

11 голосов
/ 03 ноября 2019

Вы должны переписать свое понимание так, чтобы условие находилось в «теле» генератора:

c = [x < y ? x : y for (x, y) in zip(a, b)]

Условие if в пониманиях предназначено исключительно для фильтрации на данный момент (хотя это может бытьможно добавить смысл, который вы хотите).

...