【python3学习记录】字典

基本内容

字典,键值对(key : value)方式存储数据,其中键是唯一的,键只能是可哈希类型,如字符串、数字、元组(前提是元组内的元素是不可变的类型),不可哈希像列表字典则不可以作为键,值可以是任何类型。(官方对于键的解释:字典是以 关键字 为索引的,关键字可以是任意不可变类型,通常是字符串或数字。如果一个元组只包含字符串、数字或元组,那么这个元组也可以用作关键字。但如果元组直接或间接地包含了可变对象,那么它就不能用作关键字)

>>> d = {}                      # 新建一个空字典
>>> t = (1, 2)                  # 新建一个元组作为键
>>> d[t] = 'key is a tuple'     # 直接给键赋值
>>> d
{(1, 2): 'key is a tuple'}
>>>
>>> d['name'] = 'zhgyu'         # 直接添加元素
>>> d
{(1, 2): 'key is a tuple', 'name': 'zhgyu'}
>>>
>>> d['name'] = 'ZhgYu'         # 直接根据键修改对应的值内容,键不可修改
>>> d
{(1, 2): 'key is a tuple', 'name': 'ZhgYu'}
>>>
>>> d.clear()                   # 清空字典
>>> d
{}
>>>
>>> del d                       # 删除字典
>>> d
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'd' is not defined

内置函数

len(dict) 获取字典元素个数、str(dict)  将字典输出为字符串形式。

>>> d = {(1, 2): 'key is a tuple', 'name': 'ZhgYu'}
>>> str(d)
"{(1, 2): 'key is a tuple', 'name': 'ZhgYu'}"

# 字典有一个构造函数可以直接创建字典
>>> d = dict([('name', 'zhgyu'), ('age', 23)])
>>> d
{'name': 'zhgyu', 'age': 23}

# 内容比较简单时可以这么写,超级方便
>>> d1 = dict(name = 'zhgyu', age  = 23)
>>> d1
{'name': 'zhgyu', 'age': 23}

 内置方法

copy() 浅复制、get(key, default=None) 、setdefault(key, default=None)、update(dict)、keys()、values()、pop()、popitem()

# get(key, default=None) 返回指定键的值,如果键不存在则返回default的值(尽量使用,列表也应该封装一个类似的)

# serdafault(key, default=None) 返回指定键的值,如果键不存在则创建这个键并赋予default的值。

# update(dict) 把dict的键值更新到字典中。重复的键,值会被dict覆盖。
>>> d1 = dict(name = 'zhgyu', age  = 23)
>>> d1
{'name': 'zhgyu', 'age': 23}
>>> d2 = dict(age = 24, phone = '****')
>>> d2
{'age': 24, 'phone': '****'}
>>> d1.update(d2)
>>> d1
{'name': 'zhgyu', 'age': 24, 'phone': '****'}

# keys、values 返回键、值的迭代器

# pop(key[,default]) 删除给定键的值,返回值的内容,key值不存在则返回default,如果不传入default,key又不存在会报错。

# popitem()从字典中移除并返回一个 (键, 值) 对。 键值对会按 LIFO 的顺序被返回。字典若为空则引发KeyError。



猜你喜欢

转载自blog.csdn.net/qq_40702130/article/details/109803778