Learning list comprehensions and discovered that if/if-else statement can be placed in different order of apperance in expression. In example, starting understanding list comprehension construction from for loop schema:
positive = []
for number in numbers:
if int(number) >= 0:
positive.append(int(number))
else:
positive.append(0 - int(number))
can be evaluated to:
positive = [int(number) if int(number) >= 0 else 0 - int(number) for number in numbers]
But
positive = []
for number in number:
if int(number) >= 0:
positive.append(int(number))
goes to:
positive = [int(number) for number in numbers if int(number) >= 0]
I know that one of useful technique for creating list comprehension is to read for loop from top to down and put them in one line (a little shortcut of course). But why those 2 examples put if / if-else statement once in front and secondly in the end of construction?