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语句应该紧跟要使用的字段之后,而不是放在最后的判断