Leo*_*Leo 4 python list-comprehension syntax-error
这个问题很像: if/else在Python的列表理解中? 和 Python中的简单语法错误,否则dict理解.但我仍然不明白我在这里犯了什么错误:
[i if i!=0 for i in range(2)]
^
syntax error
Run Code Online (Sandbox Code Playgroud)
我只希望列表中的稀疏度为非零的条目.
Suk*_*lra 11
移动if到最后.请参阅List Comprehensions上的Python Docs条目.
>>> [i for i in range(2) if i!=0] # Or [i for i in range(2) if i]
[1]
Run Code Online (Sandbox Code Playgroud)
如果您正在寻找条件表达式,您可以像@Martijn指出的那样做,
>>> [i if i!=0 else -1 for i in range(2)]
[-1, 1]
Run Code Online (Sandbox Code Playgroud)
如果您只想要非零实体,您也filter(...)可以使用列表.
>>> filter(None, [1, 2, 0, 0, 4, 5, 6])
[1, 2, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
407 次 |
| 最近记录: |