"" collection 模块 首先 在学习这个模块之前我们还学习过其他的 整形 浮点型 字符串 列表 字典 元祖 集合 布尔值 而 collection模块也是其中之一 增加了解 具名元祖 想表示坐标点x为1 y 为2的坐标 """ # from collections import namedtuple # point = namedtuple("坐标",["x","y","z"]) #第二个参数也可以穿可迭代对象 # # point = namedtuple("坐标","x y z") #也可以穿字符串 但是字符串 之间要用空格隔开 # p = point(10,2,2)# 注意 元素的个数必须和namedtuple 第二个参数里面的值 数量一致 # print(p) # #结果 坐标(x=10, y=2, z=2) # print(p.y) #在打印的时候再次调用namedtuple 第二个值里面的参数 可以直接打印出所对应的值 # #结果 2 # # #队列 :先进先出(FIFO)这这个字母代表着F = first ,I = in,F = first, O = out # import queue # q = queue.Queue() # 生成队列对象 # q.put("first") # 往队列里面添加值 # q.put("jason") # q.put("jason2") # print(q.get()) # 往队列里面要值 # print(q.get()) # print(q.get()) #如果队列里面的值取完了 他就会等着你 直到拿到值了才会停止 且不会报错 """ 打印结果遵循 先进先出 的原则 结果:first jason jason2 """ """ deque 双端队列 那么意思就是可以在两边进在两边出 """ # from collections import deque # q = deque (["a","b","c"]) # #append 尾部添加 # #appendleft 开始添加 # #pop 尾部取值 # #popleft 开始取值 # # q.append(1) # print(q) # #结果:deque(['a', 'b', 'c', 1]) 尾部添加 # q.appendleft(2) # print(q) # #结果:deque([2, 'a', 'b', 'c', 1]) 开始添加 """ 队列不应应该支持任意位置插值 只能在首尾插值(不能插队) 特点:说是特点也可以是缺点 双端队列可以根据所以在任意位置插值 """ from collections import OrderedDict #有序字典 # order_d = OrderedDict ([("a",1),("b",2),("c",3)]) # print(order_d) #结果:OrderedDict([('a', 1), ('b', 2), ('c', 3)]) #可以支持 print(order_d["a")索引取值 # order_d1 = OrderedDict() # order_d1["x"] = 1 # order_d1["q"] = 2 # order_d1["w"] = 3 # print(order_d1) #结果:OrderedDict([('x', 1), ('q', 2), ('w', 3)]) # 支持直接添加值 索引取值 # from collections import defaultdict # # defaultdict 带有默认值的字典 # # my_dict = defaultdict(list) #后续该字典中新建的key对应的value默认就是列表 # print(my_dict["aaa"]) #打印表示一个空的列表 # #结果:[] # values = [11,22,33,44,55,66,77,88,99,] # for values in values: # if values>66: # my_dict['k1'].append(values) # else: # my_dict["k2"].append(values) # print(my_dict) #结果:defaultdict(<class 'list'>, {'k2': [11, 22, 33, 44, 55, 66], 'k1': [77, 88, 99]}) # my_dict1 = defaultdict(int) #转成整形 # print(my_dict1['xxx']) # print(my_dict1['yyy']) # # my_dict2 = defaultdict(bool) #转换布尔值 返回一个 False # print(my_dict2['kkk']) # # # my_dict3 = defaultdict(tuple) # print(my_dict3['mmm']) # 转换一个空元组的() from collections import Counter s = "qwfscdfesfdqw" # res = Counter(s) # print(res) #结果返回({'f': 3, 'q': 2, 'w': 2, 's': 2, 'd': 2, 'c': 1, 'e': 1}) #统计 s 内的相同的值有多少个并以字典的形式返回 # for i in res: # print(i) # 因为 这时候额res 已经被转变成一个字典所以得到的值 值有k d = {} for i in s: d[i] = 0 print(d) 改变 i 的里面v的值 返回的 也是以字典形式返回 但是每个值对应的是0
collections 模块 字典
猜你喜欢
转载自www.cnblogs.com/yangxinpython/p/11209133.html
今日推荐
周排行