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