带列表的三元运算符
Ternary operator with lists
我在 Python 中有一个字符串列表,其中一些字符串以字符 -
开头,我想删除这样的字符.
我试过这句话:
columns = [column[1:] for column in columns if column.startswith('-') else column]
但是我得到一个 Sintax Error
异常。
正确的做法是什么?
您希望三元运算符的结果是列表中的结果,所以它都在左边:
columns = [column[1:] if column.startswith('-') else column for column in columns]
您可以使用 if
after for .. in ...
将项目完全过滤出迭代,但 else
没有任何意义那个上下文,这就是为什么你得到 SyntaxError
.
我在 Python 中有一个字符串列表,其中一些字符串以字符 -
开头,我想删除这样的字符.
我试过这句话:
columns = [column[1:] for column in columns if column.startswith('-') else column]
但是我得到一个 Sintax Error
异常。
正确的做法是什么?
您希望三元运算符的结果是列表中的结果,所以它都在左边:
columns = [column[1:] if column.startswith('-') else column for column in columns]
您可以使用 if
after for .. in ...
将项目完全过滤出迭代,但 else
没有任何意义那个上下文,这就是为什么你得到 SyntaxError
.