Python-列表理解中的if/else?

发布于 2021-02-02 23:21:47

如何在Python中执行以下操作?

row = [unicode(x.strip()) for x in row if x is not None else '']

实质上:

  1. 用空字符串替换所有的None,然后
  2. 执行功能。
关注者
0
被浏览
155
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    你可以完全做到这一点,这只是一个订购问题:

    [unicode(x.strip()) if x is not None else '' for x in row]
    

    一般来说,

    [f(x) if condition else g(x) for x in sequence]
    

    而且,if仅对于具有条件的列表理解而言,

    [f(x) for x in sequence if condition]
    

    请注意,这实际上使用了一种不同的语言构造,即条件表达式,它本身不是理解语法的一部分,而ifafter则for…in是列表理解的一部分,用于从可迭代的源中筛选元素。

    条件表达式可用于各种情况,其中你需要根据某些条件在两个表达式值之间进行选择。这与其他语言中存在的三元运算符?:相同。例如:

    value = 123
    print(value, 'is', 'even' if value % 2 == 0 else 'odd')
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看