from collections import defaultdict,Counter,OrderedDict,ChainMap

###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)

 

posted @ 2019-12-05 15:45  howhy  阅读(218)  评论(0)    收藏  举报