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 answers

i 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

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -