#defaultdict模块
- 统计序列中元素出现的次数
示例1:
给定序列users =[“body_1”,“body_2”,“body_3”,“body_4”,“body_1”,“body-3”]统计序列中各个元素出现的次数
方法1:
user_dict ={}
for user in users :
if user not in user_dict : #判断列表中的元素是否在字典中
user_dict[user] = 1
else :
user_dict[user] +=1
方法2:
from collections import defaultdict
for user in users :
#setdefault(key,default) default :设置的默认键值,如果key在users中,那么默认起始值为0
user_dict.setdefault(user,0)
user_dict[user] += 1
print(user_dict)
用法3:
defaultdict(Func_tion) # Func_tion:工厂函数,list -->[] ,int-->0,,str-->’ ‘,set -->set()
default_dict = defaultdict(int)
default_dict["body_"] #在body_不存在时给我定一个list
print(default_dict) #打印结果 :defaultdict(<class 'int'>, {'boddy_': 0})
#Orderdict
- 保证添加顺序
from collections import OrderedDict
user_dict = OrderedDict() #保证添加顺序
#按照顺序添加元素 ,如果key值重复,优先选择
user_dict["a"] ="body_1"
user_dict["c"]="body_3"
user_dict["b"]="body_2"
print(user_dict)
#打印结果:OrderedDict([('a', 'body_1'), ('c', 'body_3'), ('b', 'body_2')]) 注意打印的顺序
- 常用方法
print(user_dict.popitem()) #删除最后一个键值
print(user_dict.pop(key)) #删除一个key,必须有一个对应的key值
print(user_dict.move_to_end(key)) #移动某个键值到最后