#Python3 [字典】类型 学习笔记

一、字典类型基本知识:

1、字典是一种可变容器模型,且可存储任意类型对象。

2、字典采用 键值对的方式存储对象,键:值对之间用冒号(:)对应,每个对用逗号(,)分隔,每个字典包含在 { } 之中。

  例:a={k1:v1,k2:v2,k3:v3}

3、键必须是唯一的,但值不必须。

4、值可以是任意数据类型,但键必须是不可变的。

二、字典的基本操作:

1、字典的创建

(101)直接定义创建:dict={'a':'123','b':5}

(102)函数创建:fromkeys( ):

  语法:dict.fromkeys(seq [,value]) #seq:字典键的列表;value:可选参数, 设置键序列(seq)对应的值,默认为 None。返回一个新字典。

  例:seq=['name','age','sex']

    dict=dict.fromkeys(seq) #字典键对应的值 默认为:None。

  或:dict=dict.fromkeys(seq,10) #字典键对应的值 为:10

2、字典值的访问:通过键名获取键值:例:dict['a'] 【如果键名不存在,则报错】

3、字典值的修改:通过键名修改键值:例:dict['a']='456'

4、字典值的删除:

(401)通过键名删除键值:例:del dict['a']

(402)通过键名删除键值:例:pop( )函数 #删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

  语法:pop(key [,default]) #key:要删除的值的键名;dault:当key不存在时,返回的默认值;如果当key不存在时,没有默认值,系统则会报错。

(403)dict.popitem() :随机返回并删除字典中的最后一对键和值;如果字典已经为空,却调用了此方法,就报出KeyError异常;返回删除的(键值对)。

(404)清空字典:dict.clear() #删除索引字典的元素。

(405)删除字典:del dict #没有了这个字典变量

三、字典键:值的特性:

1、字典的值:可以是Python的任意类型。可以是是标准类型,也可以是用户自定义类型。

2、字典的键

(201)必须不可变,键可以用字符串、数字、元组,但列表不行。

(202)键名不能重复,如果重复,系统只认最后一个。

四、字典内置函数:字典:dict={‘name’:'wang','age':18,'sex':'男‘’}

1、len(dict):获取字典元素个数。

2、str(dict):输出字典,以字符串的方式表示。

3、type(dict):如果dict是字典类型,则输出类型字典。

4、dict.copy( ):字典的拷贝。

5、dict.get(key,default=None):获取键所对应的值,如果键不存在,则返回默认值。

6、dict.setdefault(key,dault=None):获取键所对应的值,如果键不存在于字典中,将会添加键并将值设为默认值。

7、key in dict:判断键key是否在字典dict中。在返回True,不在返回False。【或 key not in dict】

8、dict1.update(dict2):把字典dict2的键值对更新到字典dict1中。【把字典2的键值对,合并到字典1中】

9、dict.items():以列表方式返回视图对象,是一个可遍历的key/value 对。

  例:

  dict={'name':'wang','age':18,'sex':'男'}
  print(dict.items())
  for k,v in dict.items():
    print('k:',k ,'\n','v:',v)

  显示:

  dict_items([('name', 'wang'), ('age', 18), ('sex', '男')])
  k: name
  v: wang
  k: age
  v: 18
  k: sex
  v: 男

10、dict.keys():返回一个视图对象;提供了字典实体的动态视图,这就意味着字典改变,视图也会跟着变化。视图对象不是列表,不支持索引,可以使用 list() 来转换为列表;我们不能对视图对象进行任何的修改,因为字典的视图对象都是只读的。

  例:keys=dict.keys() #获取字典 键的列表。返回的是列表。

11、dict.values:返回一个视图对象;提供了字典实体的动态视图,这就意味着字典改变,视图也会跟着变化。视图对象不是列表,不支持索引,可以使用 list() 来转换为列表;我们不能对视图对象进行任何的修改,因为字典的视图对象都是只读的。

  例:values=dict.values() #获取字典值的列表。返回的是列表。