python3进阶之推导式3之字典(dict)推导式(comprehensions)

青春壹個敷衍的年華 提交于 2020-02-14 02:47:25
1.前言     可以对比列表推导式的思路,与字典推导式的进行对比,训练自己的学习迁移能力。2.表达式{ key_expr: value_expr for value in collection if condition }
3.实例例1: 
# 用字典推导式以字符串以及其索引位置建字典# 代码如下:strings = ['import','is','with','if','file','exception','liuhu']d = {key: val for val,key in enumerate(strings)}# 用字典推导式以字符串以及其长度位置建字典s = {strings[i]: len(strings[i]) for i in range(len(strings))}k = {k:len(k)for k in strings}  #相比上一个写法简单很多
print(d)# {'import': 0, 'is': 1, 'with': 2, 'if': 3, 'file': 4, 'exception': 5, 'liuhu': 6}print(s)# {'import': 6, 'is': 2, 'with': 4, 'if': 2, 'file': 4, 'exception': 9, 'liuhu': 5}print(k)# {'import': 6, 'is': 2, 'with': 4, 'if': 2, 'file': 4, 'exception': 9, 'liuhu': 5}
示例2:同一个字母但不同大小写的值合并起来了。
mc = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}
mca = {k.lower(): mc.get(k.lower(), 0) + mc.get(k.upper(), 0) for k in mc.keys()}

# mcase_frequency == {'a': 17, 'z': 3, 'b': 34}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!