python中list,set,dict comprehension详解

今天在看代码的时候,看到一个dict comprehension,不太理解,然后就查了一下。

list comprehension比较好理解一点,dict comprehension平时可能用的也不多

list comprehension=[  ……code……]      #value

touple comprehension=touple(……code……)  #value

dict comprehension={……code……}           #key:value

 

今天又见到另外的dict comprehension写法:uppercase_attrs = {

    attr if attr.startswith("__") else attr.upper(): v
for attr, v in future_class_attrs.items()
}
需要注意的一点在list、dict comprehension中嵌套if-else的语法的问题:
[x for x in range(1, 10) if x % 2 else x * 100]  错误写法

[ x if x%2 else x*100 for x in range(1, 10) ]    正确写法
就是if-else语句应该紧跟要使用的字段之后,而不是放在最后的判断



posted @ 2020-05-26 16:40  一日学一日功  阅读(509)  评论(0编辑  收藏  举报