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
仍然是语法错误.也许有人可以帮助我吗?谢谢
每当您需要从列表中过滤项目时,条件必须在最后.所以你需要过滤空的项目,就像这样
[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)