python:collections(2)之defaultdict和OrderedDict模块

#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))  #移动某个键值到最后

猜你喜欢

转载自blog.csdn.net/Mr_zhangbz/article/details/84036671