###py2 dict是无序的 py3默认是有序的
from collections import deque
from collections import defaultdict,Counter,OrderedDict,ChainMap
users=["aa","bb","cc","aa","cc"]
dd={}
for user in users:
##方法1
#if user not in dd:
#dd[user]=1
# else:
# dd[user]+=1
##方法2
dd.setdefault(user, 0)
dd[user] += 1
print(dd)
##方法3
dd1=defaultdict(int)
for user in users:
dd1[user]+=1
print(dd1)
def gen_default():
return {"name":"user1","age":0}
ddfault=defaultdict(gen_default)
print(ddfault["zhangsan"])
ddfault["zhangsan"]="aaa"
print(ddfault)
##方法4
dd2=Counter(users)
print(dd2)
##OrderedDict
ordict=OrderedDict()
#ordict.move_to_end() ##特有方法
##ChainMap
dd3={"aa":"e1","bb":"33"}
dd4={"cc":"ecc1","bb":"44"}
dd5=ChainMap(dd3,dd4)##for遍历时去除相同的key取第一个
print(dd5)
print(dd5.maps)
for k,v in dd5.items():
print(k,v)