如何将带if条件的for循环转换为字典推导式(Dictionary Comprehension)
字典推导式转换实现
直接把你的循环代码转换成字典推导式的写法如下:
dico = {key: 'green' if key in ['good', 'very good'] else 'red' for key in ['good','very good','bad','very bad','not good not bad']} print(dico)
逻辑说明
字典推导式的核心结构是 {键: 值 for 元素 in 可迭代对象},这里我们把原来循环里的if-else判断用三元表达式整合到了值的位置:
- 当
key属于['good', 'very good']时,对应值为'green' - 其他情况对应值为
'red'
运行这段代码后,输出结果和你期望的完全一致:
{'good': 'green', 'very good': 'green', 'bad': 'red', 'very bad': 'red', 'not good not bad': 'red'}
如果要让代码可读性和执行效率更高,还可以把判断用的集合单独定义:
keys = ['good','very good','bad','very bad','not good not bad'] green_keys = {'good', 'very good'} # 集合的成员判断效率比列表更高 dico = {key: 'green' if key in green_keys else 'red' for key in keys}
内容的提问来源于stack exchange,提问作者Amandine Rolland
相关产品推荐
相关产品推荐

