九、字典

字典是python中唯一的映射类型。

  1. 创建字典
    字典的创建比较灵活。
>>> dict1 = {}
>>> dict1
{}
>>> type(dict1)
<class 'dict'>
>>> dict2 = {'a':1, 'b':2, 'c':3}
>>> dict2
{'a': 1, 'b': 2, 'c': 3}
>>> dict3 = dict(a=1, b=2, c=3) # 注意这种创建方法中dict()函数是这样定义的:dict(**kwargs)    字典型可变参数,会自动打包成字典,因此不能加引号,不然会出错。
>>> dict3
{'a': 1, 'b': 2, 'c': 3}
>>> dict4 = dict((('a', 1), ('b', 2), ('c', 3))) # dict函数的参数可以是一个序列(但不能多个),因此要打包成一个元组或列表序列。
>>> dict4
{'a': 1, 'b': 2, 'c': 3}
>>> dict4 = dict([('a', 1), ('b', 2), ('c', 3)])
>>> dict4
{'a': 1, 'b': 2, 'c': 3}
>>> dict5 = dict({'a':1, 'b':2, 'c':3})
>>> dict5
{'a': 1, 'b': 2, 'c': 3}
>>> dict6 = dict(zip(['a', 'b', 'c'], [1,2,3]))
>>> dict6
{'a': 1, 'b': 2, 'c': 3}
  1. 字典的访问与更改
>>> dict1['a']
1
>>> dict1['d']
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    dict1['d']
KeyError: 'd'
>>> dict1['d'] = 4
>>> dict1
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> dict1['a'] = 5
>>> dict1
{'a': 5, 'b': 2, 'c': 3, 'd': 4}
  1. 删除字典
>>> dict1
{'a': 5, 'b': 2, 'c': 3, 'd': 4}
>>> del dict1['a']
>>> dict1
{'b': 2, 'c': 3, 'd': 4}
>>> del dict1
>>> dict1
Traceback (most recent call last):
  File "<pyshell#34>", line 1, in <module>
    dict1
NameError: name 'dict1' is not defined
  1. 关于字典,有以下几点要说明:
  • 字典是可迭代对象,可变类型,但字典的键必须是不可变类型(如数值、元组和字符串,但列表不行),值可以取任何数据类型;
  • 字典不是序列类型,不支持拼接和重复操作;
  • 字典只能用键查询值,但不能用值查询键;
  • 字典中的对象是无序的,字典的价值在于键与值之间的关联;
  • 可以使用in关键字检查某个键是否在字典中,但不能用来检查某个值是否在字典中。
  1. 字典内置方法
dir(dict)

__class__    __contains__    __delattr__    __delitem__    __dir__    __doc__    __eq__    __format__    

__ge__    __getattribute__    __getitem__    __gt__    __hash__    __init__    __init_subclass__    

__iter__    __le__    __len__    __lt__    __ne__    __new__    __reduce__    __reduce_ex__    __repr__    

__reversed__    __setattr__    __setitem__    __sizeof__    __str__    __subclasshook__    

clear(清空字典)    copy(拷贝字典)    fromkeys(创建相同值字典)    get(人性化访问)    items(返回键值对)    

keys(返回所有的键)    pop(给定键弹出值)    popitem(弹出键值对)    setdefault(与get类似)    update(更新字典)    values(返回所有值)
posted @ 2020-11-05 08:33  YuMi-sharing  阅读(107)  评论(0)    收藏  举报