PYTHON 数据结构 - 字典

1.1 字典

字典是可迭代的,可变数据结构,以键值对存储,通过键来访问,键不能包含重复元素。

语句 说明
字典= 创建字典
字典 = {}; 字典 = dict() 创建空字典
value = 字典[key] 读取键对应的值
字典[key] = value 添加或修改元素值
del 字典[key] 删除元素
len(字典) 字典的长度
new_dict = 字典.copy() 复制字典
in, not in 验证元素是否存在
字典.keys() 返回所有键
字典.values() 返回所有值
字典.items() 返回所有键值对元组
字典.get(key, defaults=默认值) 获取键对应的值,没有返回默认值
字典.setdefault(key,default=None) 同get,但如果没有这个键则添加并返回
字典.pop(key,default) 删除,没有元素返回默认值,没有默认值抛出异常。
字典.popitem() 删除最后一个元素,3.7以前版本随机删除
dict.fromkeys(序列,默认值) 用序列创建字典
字典.update(另一个字典) 用另一个字典更新(修改或追加)

1.2 创建字典

# a = {key:value, key:value, ...}

>>> fruits = {'西瓜':15, '香蕉':20}
>>> fruits
{'西瓜': 15, '香蕉': 20}

# 创建空字典
>>> a = {}
>>> a
{}
>>> a = dict()
>>> a
{}

1.3 读写字典的元素

# 字典[键]
>>> fruits = {'西瓜':15, '香蕉':20}
>>> fruits['西瓜']  # 读取
15
>>> fruits['西瓜'] = 25  # 修改值
>>> fruits['西瓜']
25

1.4 增加和删除元素

# 添加
>>> fruits = {'西瓜':15, '香蕉':20}
>>> fruits['桔子'] = 5  # 没有这个键就是新增,如果有就是修改
>>> fruits
{'西瓜': 15, '香蕉': 20, '桔子': 5}

# 删除
>>> fruits = {'西瓜':15, '香蕉':20}
>>> del fruits['西瓜']
>>> fruits
{'香蕉': 20}

# 删除所有元素
>>> fruits = {'西瓜':15, '香蕉':20}
>>> fruits.clear()
>>> fruits
{}

# 删除字典
del fruits

1.5 字典复制

# 字典.copy()

>>> fruits = {'西瓜':15, '香蕉':20}
>>> len(fruits)
2
>>> a = fruits.copy()
>>> a
{'西瓜': 15, '香蕉': 20}

1.6 遍历字典

1.6.1 遍历键值对

字典.items() 返回元组(key,value) ...

fruits = {'西瓜':15, '香蕉':20}
for key, value in fruits.items():
    print(key,value)

1.6.2 遍历键

字典.keys()

fruits = {'西瓜':15, '香蕉':20}
for key in fruits.keys():
    print(key)

1.6.3 遍历值

字典.values()

fruits = {'西瓜':15, '香蕉':20}
for value in fruits.values():
    print(value)

1.7 其它方法

  • 返回指定键的值,不存在返回默认值:get(key, default=None)
>>> fruits = {'西瓜':15, '香蕉':20}
>>> fruits.get('西瓜','没有')
15
>>> fruits.get('桔子','没有')
'没有'
  • 返回指定键的值,如果不存在则添加这个键值对:setdefault(key,default=None)
>>> fruits = {'西瓜':15, '香蕉':20}
>>> fruits.setdefault('西瓜',25)
15
>>> fruits.setdefault('桔子',15)
15
>>> fruits
{'西瓜': 15, '香蕉': 20, '桔子': 15}
  • 删除:pop(key,default)

    删除并返回值,如果没有这个元素返回默认值,如果没有默认值抛出异常。

>>> fruits = {'西瓜':15, '香蕉':20}
>>> fruits.pop('西瓜')
15
>>> fruits
{'香蕉': 20}
>>> fruits.pop('西瓜','删除失败,没有这个键')
'删除失败,没有这个键'
  • 用序列创建字典:dict.fromkeys(序列,默认值)
# fromkeys是dict的静态方法
>>> fruits=('西瓜','香蕉','桔子')
>>> my_dict = dict.fromkeys(fruits,0)
>>> my_dict
{'西瓜': 0, '香蕉': 0, '桔子': 0}
  • 字典更新(用另一个字典更新,存在修改,不存在添加):update
>>> fruits = {'西瓜':15, '香蕉':20}
>>> other = {'桔子':5}
>>> fruits.update(other)
>>> fruits
{'西瓜': 15, '香蕉': 20, '桔子': 5}
posted @ 2022-12-02 22:57  叁只小羊  阅读(89)  评论(0)    收藏  举报