python - Why is this list comprehension giving me a syntax error? -
python - Why is this list comprehension giving me a syntax error? -
this question has reply here:
if else in list comprehension 8 answersi have next list comprehension.
return [tower tower in state if tower != space else []]
but when run it, python spits error:
return [tower tower in state if tower != space else []] ^ syntaxerror: invalid syntax
if remove else statement, runs fine. writing else statement wrong somehow?
list comprehensions back upwards if
not else
; if wanted utilize conditional look build iterable, utilize parentheses:
return [tower tower in (state if tower != space else [])]
but suspect wanted alter value of look in element expression instead:
return [tower if tower != space else [] tower in state]
or omit else
if filtering:
return [tower tower in state if tower != space]
when constructing list comprehension, remember need read look nested left right, final look producing result out on left:
[element_producing_expression name in iterable if filter_expression]
is moral equivalent of:
for name in iterable: if filter_expression: element_producing_expression
where can utilize many nested loops , if
filters utilize case requires.
the 3 options described above same as:
# conditional look producing iterable tower in (state if tower != space else []): tower # conditional look in element look tower in state: tower if tower != space else [] # filtering look no else tower in state: if tower != space: tower
python if-statement list-comprehension
Comments
Post a Comment