字典的keys和items返回的对象支持集合的交并差操作,但是values方法不支持。
原因是values的值可能相同运行可能导致错误,但是可以先进行set消重再操作。
代码如下:
d = {1: 2, 3: 4, 5: 6}
print(d.keys() & {1, 7}, d.keys() - {1, 2}, d.keys() | {1, 2, 4})
print(d.items() & {(1, 2), (7, 8)}, d.items() - {(1, 2), (7, 8)}, d.items() | {(1, 2), (7, 8)})
>>> {1} {3, 5} {1, 2, 3, 4, 5}
>>> {(1, 2)} {(3, 4), (5, 6)} {(1, 2), (7, 8), (5, 6), (3, 4)}
生产过程中经常会使用到遍历字典,在遍历的过程中如果修改字典,很容易导致错误,所以有个万金油的办法是遍历dict.copy
d = {1: 2, 3: 4, 5: 6, 7: 8}
for i in d.copy():
values = d.pop(i)
d[values] = i
print(d)
>>> {2: 1, 4: 3, 6: 5, 8: 7}
网友评论