zoukankan      html  css  js  c++  java
  • Python—字典的操作

    字典的操作:

    #字典的本质其实是dict类的对象
    >>> a = dict([("a","1")])
    >>> a
    {'a': '1'}

    一.增加

    1 >>> student_num = {"stu1101": "阿橙", "stu1102": "阿万", "stu1103": "阿朝", "stu1104": "peter1",}
    2 >>> student_num["stu1105"] = "zebra"     #增加
    3 >>> print(student_num)
    4 {'stu1101': '阿橙', 'stu1102': '阿万', 'stu1103': '阿朝', 'stu1104': 'peter1', 'stu1105': 'zebra'}
    5 >>>

    二.修改

    1 >>> student_num = {"stu1101": "阿橙", "stu1102": "阿万", "stu1103": "阿朝", "stu1104": "peter1",}
    2 >>> student_num["stu1101"] = "gkx"  #修改
    3 >>> student_num
    4 {'stu1101': 'gkx', 'stu1102': '阿万', 'stu1103': '阿朝', 'stu1104': 'peter1', 'stu1105': 'zebra'}

    三.删除

     1 >>> #删除
     2 >>> student_num.pop("stu1104")   #标准删除方法
     3 'peter1'
     4 >>> student_num
     5 {'stu1101': 'gkx', 'stu1102': '阿万', 'stu1103': '阿朝', 'stu1105': 'zebra'}
     6 >>> 
     7 >>> 
     8 >>> del student_num["stu1105"]
     9 >>> student_num
    10 {'stu1101': 'gkx', 'stu1102': '阿万', 'stu1103': '阿朝'}
    11 >>> #ptyhon内置的删除方法
    12 >>> 
    13 >>> student_num.popitem()  #随机删除
    14 ('stu1103', '阿朝')
    15 >>> student_num
    16 {'stu1101': 'gkx', 'stu1102': '阿万'}
    17 >>> 

    四.查找

     1 >>> #查找
     2 >>> zoo = {"a101":"zebra","b202":"chimpanzee","c303":"lion"}
     3 >>> "a101" in zoo  #判断字典中key是否在dict中
     4 True
     5 >>> 
     6 >>> zoo["a101"]
     7 'zebra'
     8 >>> #用key来查找value,不过当key不在该dict中时,会报错
     9 >>> 
    10 >>> zoo.get("d404")
    11 >>> print(zoo.get("d404"))
    12 None
    13 >>> print(zoo.get("c303"))
    14 lion
    15 >>> #用.get的方法,找不到不会报错,建议使用

    五.字典的循环和自动生成

    
    

      >>> zoo.values()  #打印所有value
      dict_values(['zebra', 'chimpanzee', 'lion'])
      >>> zoo.keys()    #打印所有key
      dict_keys(['a101', 'b202', 'c303'])

     1 >>> zoo2
     2 {'c303': 'lion', 'd404': 'elephant', 'c4': 'tiger'}
     3 >>> for key in zoo2:           #打印key和value
     4     print(key,zoo2[key])
     5 
     6 >>>
     7 c303 lion
     8 d404 elephant
     9 c4 tiger
    10 >>> 
    11 
    12 >>> for k,v in zoo2.items():  #数据量大时不要用
    13     print(k,v)
    14 
    15 >>>    
    16 c303 lion
    17 d404 elephant
    18 c4 tiger
    19 >>> 
    20 
    21 >>> c = dict.fromkeys([1,2,3],[4,5,6])  #位置1是key,位置2不管写啥都是values,不过若位置2为[4:{"name":"6"}],生成的字典,若修改其中一个[4:{"name":"6"}]字典里的值,其他value也都会一起改,
    类似浅copy
    22 print(c) 23 {1: [4,5,6], 2: [4,5,6], 3: [4,5,6]}

    六.字典的其他操作

     1 >>> #setdefault
     2 >>> zoo2 = {"a101":"zebra","b202":"chimpanzee","c303":"lion"}
     3 >>> zoo2.setdefault("a101","cat")  #setdefault 判断key是否在dict中,若在则不做修改,若不在则将新key添加至dict中
     4 'zebra'
     5 >>> zoo2
     6 {'a101': 'zebra', 'b202': 'chimpanzee', 'c303': 'lion'}
     7 >>> zoo2.setdefault("d404","elephant")
     8 'elephant'
     9 >>> zoo2
    10 {'a101': 'zebra', 'b202': 'chimpanzee', 'c303': 'lion', 'd404': 'elephant'}
    11 >>> 
    12 
    13 >>> zoo2
    14 {'c303': 'lion', 'd404': 'elephant'}
    15 >>> dict_b = {1:2,2:3,"c4":"tiger"}
    16 >>> zoo2.update(dict_b)  #类似列表中的extend,若 dict_b中有和zoo2交叉的key,会更新为dict_b中的valu
    17 >>> zoo2
    18 {'c303': 'lion', 'd404': 'elephant', 1: 2, 2: 3, 'c4': 'tiger'}
    19 
    20 >>> #items
    21 >>> zoo2.items()    #将字典中的key、value值对,一对对拿出,生成为新列表
    22 dict_items([('c303', 'lion'), ('d404', 'elephant'), (1, 2), (2, 3), ('c4', 'tiger')])
    23 >>> 

     字典的方法有:fromkeys , pop , popitem , setdefault , clear , copy , keys , values , items , update , get

    字典只能存字符串或者二进制:

    如果想存其他格式的,要用str() 强制转换一下

     

  • 相关阅读:
    UVA-679車的摆放(DFS)
    全排列问题(递归调用)
    STL栈的应用—UVA673
    nefu 84 五指山(扩展欧几里德)
    POJ 1061 青蛙的约会(扩展欧几里德)
    nefu 116 两仪剑法
    nefu 115 斐波那契的整除
    HDU 2099 整除的尾数
    Codeforces Round #339 (Div. 2) B. Gena's Code
    Codeforces Round #339 (Div. 2) A. Link/Cut Tree
  • 原文地址:https://www.cnblogs.com/gkx0731/p/9425169.html
Copyright © 2011-2022 走看看