zoukankan      html  css  js  c++  java
  • collections 模块 字典

    ""
    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
  • 相关阅读:
    while($info = mysql_fetch_assoc($result))
    网站问题搜索
    call apply js
    函数和变量名为啥不能包含
    js 函数 理解
    smtp 4个点
    使用视频作为网页背景的技术探讨
    php表达式内含表达式
    hook_theme作用小思考
    php中引用&的真正理解-变量引用、函数引用、对象引用
  • 原文地址:https://www.cnblogs.com/yangxinpython/p/11209133.html
Copyright © 2011-2022 走看看