-
""" deque() 双端队列,是一个容器 ,它接收一个可迭代的对象,这个对象可以是列表,元组,字典等 用来保存同类型的内容,可以把它当作一个对象来处理 deque包含的方法: append(): 添加数据到队列 appendleft(): 添加数据到队列头部 clear(): 清空队列数据 copy(): 返回一个浅拷贝,浅拷贝只拷贝元素 count(): 返回队列中元素的数量 extend(): 将两个deque合并为一个 extendleft(): 从左边进行合并 index(): 查找元素 insert(): 在指定位置插入元素 pop(): 移除队列的尾部元素 popleft(): 移除队列的头部元素 remove(): 删除某个元素 reverse(): 将队列反转 deque 是线程安全的,由GIL保护 list 不是线程安全的 """ from collections import deque import copy # 深拷贝 if __name__ == "__main__": user_list = ["张三","李四","王五", "赵六"] user_name = user_list.pop() # 队尾出队 print(user_name, user_list) print("----------------------------") user_tuple = deque(("张三", "李四")) # 初始化 print(user_tuple) user_list = deque(["赵六", "王八"]) print(user_list) user_dict = deque({ "苹果": 12, "雪梨": 15 }) print(user_dict) print("-------------------------") user_info_list = deque(["依依", 23, 171]) user_info = ("C罩杯", "北京大学", "中国北京") user_info_list.append(user_info) # 添加元素 print(user_info_list) print("--------------") name_deque = deque(["苹果", "香蕉", "橘子"]) name_deque.append("芒果") # 添加元素到队列尾部 name_deque.appendleft("哈密瓜") # 添加元素到队列头部 print(name_deque) fruits_deque = name_deque.copy() # 浅拷贝 print(fruits_deque) print(id(fruits_deque) , id(name_deque)) name_deque[1] = "西瓜" print(fruits_deque, name_deque) print("------------------------") color_deque = deque(["yellow","red", "blue", "black", "red"]) print(color_deque) print("元素个数:",color_deque.count("red")) color_deque.pop() # 队尾元素出队 print(color_deque) color_deque.popleft() # 队列头部元素出队 print(color_deque) color_deque.insert(0, "green") # 队列的0号位置插入元素 print(color_deque) color_deque.remove("red") # 移除值为 red的元素 print(color_deque) color_deque.reverse() # 反转队列 print(color_deque) print(color_deque[1]) # 获取下标为1的元素
查看全部 -
dict 设置默认值的方法:
1、可以通过dict.setdefault(key,default_value)
2、通过defaultdict(可调用的对象)
可调用的对象:list、str、int、dict、函数等
from collections import defaultdict def gen_default(): return { "name": "", "nums": 0 } if __name__ == "__main__": # 统计出现的次数 user_dict = {} #空字典 users = ["name1", "name2", "name3", "name1", "name2", "name1" ] print("方法1:") for user in users: if user not in user_dict: # 判断是否存在 user_dict[user] = 1 else: user_dict[user] += 1 print(user_dict) print("方法2:") for user in users: user_dict.setdefault(user, 0) user_dict[user] += 1 print(user_dict) print("--------------------------------------") default_dict1 = defaultdict(list) # defaultdict()函数接受一个可调用的对象,这个对象可以是list,str,int,dict等。 print(default_dict1) # 统计颜色出现的次数 default_dict2 = defaultdict(int) colors = ["red", "black", "red", "blue", "yellow", "green", "green"] for color in colors: default_dict2[color] += 1 print(default_dict2) print("----------------------") default_dict3 = defaultdict(gen_default) default_dict3["group"] print(default_dict3) user_dict = { "name": "依依", "age": 24, "height": 171, "cupSize": "B罩杯", "hibbos": { "eat": ["火锅", "香蕉"], "sports": ["跑步","游泳"] } } print(user_dict)
查看全部 -
namedtuple中的两个方法: (1) _make(): 该方法接收一个可迭代的对象,这个对象可以是元组,列表,字典等,其中的参数要一一对应(数量,属性) (2) _asdict():该方法可以将元组(tuple)转化为字典(dict)
查看全部 -
tuple的子类namedtuple,使用namedtuple相当于定义了一个类。
可以将tuple作为参数传递给函数,只要在tuple名前面加一个星号(*)即可。
查看全部 -
collections模块
查看全部 -
tuple比list好的地方
查看全部 -
拆包的用法2
查看全部 -
拆包的用法
查看全部 -
tuple的功能
查看全部 -
collections模块讲解的内容
查看全部 -
hjijojiiojio
查看全部 -
实例: from collections import Counter str_t = "dsjakldjakljdakjdadlkjasdklajkdja" list_t = ['tom', 'tom1', 'tom2', 'tom1', 'tom1', 'tom'] tuple_t = ('tom', 'tom1', 'tom2', 'tom1', 'tom1', 'tom') dict_t = { "tom": "male", "tom1": "male", } print(Counter(str_t)) print(Counter(list_t)) print(Counter(tuple_t)) print(Counter(dict_t.values())) ls_counter = Counter(list_t) ls_counter.update(["tom4"]) print(ls_counter) print(ls_counter.most_common(2))
查看全部 -
实例: from collections import deque list_t = ["tom_l", "jane_l", "bob_l"] tuple_t = ("tom_t", "jane_t", "bob_t") dict_t = { "tom_d": "male", "jane_d": "female", "bob_d": "male" } deq = deque(dict_t) deq.append("tim") deq.appendleft("lewin") deq.extend(tuple_t) deq.extendleft(list_t) deq.popleft() deq.pop() deq.remove("lewin") deq.reverse() print(deq.index("tim")) print(deq)
查看全部 -
实例:
from collections import defaultdict from datetime import datetime def func1(): return None dict_t = {} default_dict = defaultdict(int) key_str = "dskjakdljadakd" for k in key_str: dict_t.setdefault(k, 0) dict_t[k] += 1 default_dict[k] += 1 print("dict_t: {dict_t}\ndefault_dict: {default_dict}".format(dict_t=dict_t, default_dict=default_dict)) ##defaultdict 调用自定义函数 default_dict_custom_func = defaultdict(func1) #defaultdict 调用内置函数 default_dict_sys_func = defaultdict(datetime.now) print("\ndefault_dict_custom_func: {0}\ndefault_dict_sys_func: {1}".format(default_dict_custom_func['func'], default_dict_sys_func['func']))
查看全部 -
实例: from collections import namedtuple key_s = ("name", "age", "gender", "birthday") User = namedtuple("User", key_s) value_s = ("lewin", 29, "male") value_dict = { "name": "tim", "age": 19, "gender": "male" } value_make = ("lily", "18", "female", "2001-02-02") user_tuple = User(*value_s, "1990-01-01") user_dict = User(**value_dict, birthday="2000-02-28") user_make = User._make(value_make) user_order = user_make._asdict() print("user_tuple: {0}\nuser_dict: {1}\nuser_make: {2}\nuser_order: {3}".format(user_tuple, user_dict, user_make, user_order))
查看全部
举报
0/150
提交
取消