-
#Counter:传入可迭代对象 from collections import Counter users = ["bobby1", "bobby2", "bobby3", "bobby1", "bobby2", "bobby2"] user_counter = Counter(users) print(user_counter) #打印出dict并按键值大小顺序排列:Counter({"bobby2":3,"bobby1":2,"bobby3":1}) user_counter = Counter("adgdfcdg") #传递字符串,统计每个字符的次数 user_counter.update("djgidg") #传递可迭代对象并且合并 user_counter2 = Counter("djgidg") user_counter.update(user_counter2) #传递Counter #top n,堆 user_counter.most_common(2) #统计出现次数最多的前2个元素 -->[('d',4),('s',3)]
查看全部 -
user_list = ["bobby", "bobby2"] user_name = user_list.pop() #pop只能对队尾进行操作 print(user_name, user_list) #-->bobby2 ["bobby"] #deque双端队列:对队列两端进行操作,尽量保存相同类型数据 from collections import deque user_tuple = deque(("bobby1", "bobby2")) user_list = deque(["bobby1", "bobby2"]) user_dict = deque({"bobby1":28, "bobby2":29}) #以上三种打印结果一样:deque(['bobby1', 'bobby2']) user_deque = deque(["bobby1", "bobby2", "bobby3"]) user_deque.appendleft("bobby8") #在队列头部添加 #deque是线程安全的,list不是
查看全部 -
user_dict = {} users = ["bobby1", "bobby2", "bobby3", "bobby1", "bobby2", "bobby2"] #第一种形式 for user in users: if user not in user_dict: user_dict[user] = 1 else: user_dict[user] += 1 #第二种形式 for user in users: user_dict.setdefault(user, 0) #若user键不存在,设为默认值0 user_dict[user] += 1 from collections import defaultdict default_dict = defaultdict(list) #在bobby键不存在时,调用传递对象的名称list,生成空数组 default_dict["bobby"] #第三种形式 default_dict = defaultdict(int) #默认传递0 for user in users: default_dict[user] += 1 #如果生成嵌套的dict def gen_default(): return {"name":"", "nums":0} default_dict = defaultdict(gen_default) default_dict["group1"] #没有group1时传递gen_default函数
查看全部 -
#拆包特性 user_tuple = ("bobby", 29, 175) name, age, height = user_tuple print(name, age, height) #-->bobby 29 175 user_tuple = ("bobby", 29, 175, "beijing") name, *other = user_tuple print(name, other) #-->bobby [29, 175, "beijing"] #元组的不可变不是绝对的 name_tuple = ("bobby1", [29, 175]) name_tuple[1].append(22) print(name_tuple) #("bobby1", [29, 175, 22]) #tuple是可哈希的,可以当做dict的key;而数组list不可以 user_info_dict = {} user_info_dict[user_tuple] = "bobby" #namedtuple from collections import namedtuple User = namedtuple("User", ["name", "age", "height"]) #创建class“User”,并传递属性"name", "age", "height"] user = User(name="bobby", age=29, height=175) #也可使用下面两种方式进行初始化 print(user.age, user.name, user.height) #像使用类一样 #使用tuple进行初始化 user_tuple = ("bobby", 29, 175) user = User(*user_tuple) #加*代表依次传递tuple(*args:未指明变量名) #使用dict进行初始化 user_dict = {"name":"bobby", "age":29, "height":175} user = User(**user_dict) #加**代表依次传递dict(**kwargs:指明变量名和值) #也可使用_make函数省去*和**,_make函数支持可迭代iterable的对象:list、tuple、dict user = User._make(user_tuple) user = User._make(user_list) user = User._make(user_dict)
查看全部 -
namedtuple本质是一个类,将tuple结构以类.属性的方式来访问,常用于数据处理中。查看全部
-
dequeue 线程安全查看全部
-
基础collections中的数据结构
nameddict
查看全部 -
深拷贝:将拷贝的数据和数据的类型都拷贝
查看全部 -
collections模块
查看全部 -
_make函数,省去*和**,简单很多
查看全部 -
*args存储函数传参的值(未指明变量名的情况),**kwargs存储的是指明变量名和值的情况 前者是tuple,后者是dict
查看全部 -
深拷贝的意思就是会为引用类型的数据也拷贝一份
查看全部 -
tuplelist
查看全部 -
tuble功能
查看全部 -
collections模块
查看全部
举报
0/150
提交
取消