社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Tyler Crompton

Tyler Crompton 最近创建的主题
Tyler Crompton 最近回复了
5 年前
回复了 Tyler Crompton 创建的主题 » 一行语法中的Python if else条件[重复]

对于单行语法 else 需要套房(例如。 ab.append(c) if c in ['a','b'] else pass for c in list(string) ). 但是,在语法中不允许语句作为操作数。

你在找 list comprehensions (例如。 ab = [c if c in ['a','b'] else None for c in list(string)] ). 然而,这可能会 None 在你的名单上,我不相信你想要。列表理解在这些情况下有特殊的语法糖。只需将测试表达式移到末尾(例如。 ab = [c for c in list(string) if c in ['a','b']] ).

在您的特定情况下,另一种方法是 filter . 这对于测试函数冗长或复杂的情况特别有用。示例如下:

def is_valid_char(c):
    return c in ['a','b','c','d','e','f','A','B','C','D','E','F']

ab = list(filter(is_valid_char, list(string)))

最后,字符串是可iterable的,因此不需要为此目的将字符串转换为列表(例如。 ab = filter(is_valid_char, string) ).