字典

一、定义:

        是另一种可变容器模型,可存储任意类型对象;(也被称为关联数组或哈希表;存储的数据是没有顺序的)

        注意:

            ·键名必须是唯一的,而且键名不可修改,可以联想到新华字典,在传递参数用(**arg)来保存字典

            ·字典值可以是任意的Python对象,既可以是标准的对象,也可以是用户定义的

            ·不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住

            ·键必须不可变,所以可以用数字、字符串、元组充当

 

二、字典的增、删、改、查

    ①增

        示例1:

dict1 = {"info":1}
              dict["info"] = "hello world"
              print(dict1)

        结果:{'info': 'hello world'}

 

        示例2:

dict1 = {'info': 'hello world'}
              dict1["sakura"] = "python"
              print(dict1)

        结果:{'info': 'hello world', 'sakura': 'python'}

 

        注意:·如果存在键值对,在该键下添加新元素,会把旧元素替换(修改元素)(如示例1)

              ·如果不存在的键,则会在该字典里新插入一对键值对(如示例2)

    

    ②删

        示例:

dict1 = {"info":1,"sakura":"hello world"}
              del dict1["sakura"]
              print(dict1)

        结果:{"info":1}

 

        示例:

dict1.clear()
              print(dict1)

        结果:{}

 

        示例:

del dict1
              print(dict1)

        结果:NameError: name 'dict1' is not defined

 

    ③改

        字典添加新内容的方法是增加新的键值对,修改或删除已有键值对

 

    ④查

        ·获取字典内元素方法(通过键(key)来获取对应的值(value))

        ·通过keys()内置函数来获取所有的键

            示例:

dict1 = {"info",1,"sakura":"hello"}
                  print(dict1.keys())

            结果:dict_keys(['info', 'sakura'])

 

        ·通过values()内置函数来获取所有的值

            示例:

dict1 = {"info",1,"sakura":"hello"}
                  print(dict1.values())

            结果:dict_values([1, 'hello'])

 

三、内置函数

    len(dict):计算字典元素个数,即键的总数

 

  str(dict):输出字典,以可打印的字符串表示。

 

  type(variable):返回输入的变量类型,如果变量是字典就返回字典类型。

 

  dict.clear():删除字典内所有元素

 

  dict.copy():返回一个字典的浅复制

 

  dict.fromkeys(iterable, value=None):创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

        示例:

1 i1 = "a"
 2 i2 = ["d",1]
 3 i3 = ("c","v")
 4 i4 = {"info":"abc","name":"sakura"}
 5 v1 = dict.fromkeys(i1,"add")
 6 v2 = dict.fromkeys(i2,"change")
 7 v3 = dict.fromkeys(i3,"change")
 8 v4 = dict.fromkeys(i4)
 9 v5 = dict.fromkeys(i4,"valueChange")
10 print(v1)
11 print(v2)
12 print(v3)
13 print(v4)
14 print(v5)

        结果:  

1 {'a': 'add'}
2 {1: 'change', 'd': 'change'}
3 {'v': 'change', 'c': 'change'}
4 {'info': None, 'name': None}
5 {'info': 'valueChange', 'name': 'valueChange'}

 

        注意:

            ·该方法用于创建一个新的字典,并以可迭代对象中的元素分别作为字典中的键,且所有键对应同一个值,默认为None

            ·iterable:用于创建新的字典的键的可迭代对象(字符串、列表、元组、字典),所以它的值不能是数值型(int、float)否则会报错

 

  dict.get(key,default=none):返回指定键的值,如果值不在字典中返回default值

 

  key in dict:如果键在字典dict里返回true,否则返回false

 

  dict.items():以列表返回可遍历的(键, 值) 元组数组

        示例:

i1 = {"info":"abc","name":"sakura"}
              result = i1.items()
              print(result)

        结果:dict_items([('info', 'abc'), ('name', 'sakura')])

 

  dict.keys():返回一个迭代器,可以使用 list() 来转换为列表

        示例:

i1 = {"info":"abc","name":"sakura"}
              result = i1.keys()
              print(result)

        结果:dict_keys(['info', 'name'])

 

  dict.setdefault(key,default=none):和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

 

  dict.update(dict2):把字典dict2的键/值对更新到dict里

 

  dict.values():返回一个迭代器,可以使用 list() 来转换为列表

        示例:

i1 = {"info":"abc","name":"sakura"}
              result = i1.values()
              print(result)

        结果:dict_values(['abc', 'sakura'])

 

  pop(key[,default]):删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

 

  d.popitem():随机返回并删除字典中的一对键和值(一般删除末尾对)。