python3進階之推導式3之字典(dict)推導式(comprehensions)


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}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM