文章目录
python对字典的遍历可以理解为字典先拆解成(key,value)对组成的list。
在python解释器里面,输入help(dict.items)可以看到:
D.items() -> list of D's (key, value) pairs, as 2-tuples
for node,score in p.items(): if node<17: p[node]=0 else: p[node]=0.6
以上代码认为 node-》score是一个key-value对,遍历字典,对标号小于17的node,修改其score为0,否则,修改为0.6.
在ipython中实验字典键或者值的求和:
已经有字典y,现在要算出值的和(应该是9),以及键的和(应该是8)
In [40]: y
Out[40]: {3: 4, 5: 5}
In [41]: total=sum(e for k,e in y.items())
In [42]: total
Out[42]: 9
In [43]: total=sum(k for k,e in y.items())
In [44]: total
Out[44]: 8
在字典中,通过value反查key:
In [96]: d
Out[96]: {1: 1, 2: 5, 3: 10, 5: 1}
Out[96]: {1: 1, 2: 5, 3: 10, 5: 1}
In [97]: [k for k,v in d.items() if v==1]
Out[97]: [1, 5]
In [98]: [k for k,v in d.items() if v==1][0]
Out[98]: 1
通过zip合并两个队列(或sequence),再得到字典:
In [96]: d
Out[96]: {1: 1, 2: 5, 3: 10, 5: 1}
Out[96]: {1: 1, 2: 5, 3: 10, 5: 1}
In [116]: what=dict(zip(sort(d.keys()),sort(d.values())))
In [117]: what
Out[117]: {1: 1, 2: 1, 3: 5, 5: 10}