python list comprehensions if语句时语法无效

Kry*_*ian 3 python string list-comprehension list

我有这样的列表z = ['aaaaaa','bbbbbbbbbb','cccccccc']我想从所有元素中删除前6个字符,如果元素为空则不放入另一个列表.所以我做了这个代码:

[x[6:] if x[6:] is not '' else pass for x in z]

我试过了

pass continue

仍然是语法错误.也许有人可以帮助我吗?谢谢

the*_*eye 9

每当您需要从列表中过滤项目时,条件必须在最后.所以你需要过滤空的项目,就像这样

[x[6:] for x in z if x[6:] != ""]
# ['bbbb', 'cc']
Run Code Online (Sandbox Code Playgroud)

因为,一个空字符串是假的,我们可以简洁地写下相同的条件如下

[x[6:] for x in z if x[6:]]
Run Code Online (Sandbox Code Playgroud)

作为替代方案,正如tobias_k建议的那样,您可以像这样检查字符串的长度

[x[6:] for x in z if len(x) > 6]
Run Code Online (Sandbox Code Playgroud)