In [2]:
dic1 = {'python': 100}
dic2 = {'c++': 99}
这是两个简单的字典,假如要求进行遍历,该如何操作呢? 最粗暴的方法是用两个 for 循环分别对他们进行遍历, 但这样做未免过于繁琐。
In [3]:
dic1 = {'python': 100}
dic2 = {'c++': 99}
In [4]:
for key, value in dic1.items():
print(key, value)
python 100
In [5]:
for key, value in dic2.items():
print(key, value)
c++ 99
In [6]:
from collections import ChainMap
In [7]:
dic1 = {'python': 100}
dic2 = {'c++': 99}
In [8]:
dic = ChainMap(dic1, dic2)
dic
Out[8]:
ChainMap({'python': 100}, {'c++': 99})需要注意的是 ChainMap 返回的对象类型并不是字典。
In [9]:
type(dic)
Out[9]:
collections.ChainMap
In [10]:
for key, value in dic.items():
print(key, value)
c++ 99 python 100
In [11]:
dic1 = {'python': 100}
dic2 = {'c++': 99}
In [12]:
def pair_chain(*args):
for dic in args:
for key in dic:
yield key, dic[key]
In [13]:
for key, value in pair_chain(dic1, dic2):
print(key, value)
python 100 c++ 99
效果一点都不比 ChainMap 差。