字符串到某些字符的列表

时间:2014-08-19 16:03:06

标签: python string list character

所以我在Python工作,我想把一个字符串变成一个字符列表

VALID_SYMBOLS是一个字符列表,EMPTY_SYMBOL是一个短划线。

我想循环遍历symbols中的每个元素,如果它有效,请保留它,如果它无效,请将其转换为EMPTY_SYMBOL,但我在{{{ 1}}:

else

有更多的Pythonic方式吗?

2 个答案:

答案 0 :(得分:1)

ifelse排在第一位:

symbols = [x if x in VALID_SYMBOLS else EMPTY_SYMBOL  for x in symbols ] 

EMPTY_SYMBOL必须在某处定义。

答案 1 :(得分:1)

你的list comprehension方向错误:

symbols = [x if x in VALID_SYMBOLS else EMPTY_SYMBOL for x in symbols]

(另请注意逻辑简化。)

if之后的for foo in bar 用于过滤,并且实际上是else pass - 这会跳过无效的x,而不是替换他们与EMPTY_SYMBOL

>>> [x for x in [1, 2, 3] if x % 2]
[1, 3]
>>> [x if x % 2 else 0 for x in [1, 2, 3]]
[1, 0, 3]