Я хочу преобразовать все отрицательные значения в список в 0. Для этого у меня есть два разных подхода, тогда как я понимаю, почему первый из обоих подходов работает так, как он делает. Вот пример:Почему это понимание списка преобразует отрицательные значения вместо положительных значений в 0?
values = [200, 400, 50, -20, -100, 90, 780, -600]
n2z_one = [0 if v < 0 else v for v in values] # approach one
n2z_two = [v*(v>0) for v in values] #approach two
Какие результаты в:
values: [200, 400, 50, -20, -100, 90, 780, -600]
n2z_one: [200, 400, 50, 0, 0, 90, 780, 0]
n2z_one: [200, 400, 50, 0, 0, 90, 780, 0]
Моя проблема вот v*(v>0)
. Разве это не означает, что понимание ищет значения больше, чем 0, и умножает их на 0, вместо поиска значений меньше чем 0 и их умножение на 0?
Большое спасибо, я никогда не думал о выражении '(v> 0)', производящем логическое выражение, он так много имеет смысл и объясняет почти все. – MrPadlog