python中的字典

目录


1.什么是字典

  1. 字典是python内置的的数据之一,与列表一样是一个可变序列(可变序列就是列表能执行增删改的操作)
  2. 键值对的方式存储数据,字典是一个无序的序列,列表是一个有序序列。
  3. 用{}来定义字典

 key1,key2…..代表的是第几个放入字典当中的键,可以看出第一个放入字典的键并不是第一个,因为这里存在一个hash()函数的工序,利用这个函数,计算存储位置。所以放入字典中的键必须是一个不可变序列。例如:字符串,整数序列就是不可变序列,字典,列表都是可变序列。

2.字典的原理

        字典的实现原理:python中的字典是根据Key查找value所在的位置。

3.字典的创建与删除

        最常用的方式:使用{},scores= {‘张三’:100,’李四’:98,’王五’:45}

        使用内置函数:dict(name=’jack’,age=20)

'字典的创建方式'
# 使用{}创建字典
scores = {'张三': 100, '李四': 98, '王五': 45}
print(scores, type(scores))
# 使用内置函数dict()
student = dict(name='jack', age=20)
print(student, type(student))
# 空字典
d = {}

4.字典的查询操作

                获取字典中的值第一种方式就是使用[ ],第二种就是使用get()方法。二者的区别是如果查找的键不存在,第一种会报错,第二种报None

scores = {'张三': 100, '李四': 98, '王五': 45}

'获取字典中的元素'
# 使用 []
print(scores['张三'])  # 100
# print(scores['陈六'])  # KeyError: '陈六'
# 使用get()方法
print(scores.get('张三'))  # 100
# print(scores.get('陈六'))  # None
print(scores.get('麻七', 99))  # 99    这里输出99是因为查找的时候Value不存在时,提供的一个默认值

5.字典的增、删、改操作

        key的判断

scores = {'张三': 100, '李四': 98, '王五': 45}

'键的判断'
print('张三' in scores)  # True
print('张三' not in scores)  # False

"======================================================"
scores = {'张三': 100, '李四': 98, '王五': 45}

del scores['张三']  # 删除指定的键值对
print(scores)
# {'李四': 98, '王五': 45}

scores.clear()  # 清空字典内的所有元素
print(scores)
# {}

"======================================================"
scores = {'张三': 100, '李四': 98, '王五': 45}
scores["陈六"] = 98  # 字典元素的添加
print(scores)
# {'张三': 100, '李四': 98, '王五': 45, '陈六': 98}

scores["陈六"] = 105  # 修改键值对的值
print(scores)
# {'张三': 100, '李四': 98, '王五': 45, '陈六': 105}

获取字典视图的三个方法

        keys():获取字典中的所有key

        values():获取字典中的所有value对

        items():获取字典中的所有key,value对

scores = {'张三': 100, '李四': 98, '王五': 45}

scores.keys()  # 获取所有的key
print(scores.keys(), type(scores.keys()))
# dict_keys(['张三', '李四', '王五']) <class 'dict_keys'>
print(list(scores.keys()))  # 将所有的key组成的试图转换为列表
# ['张三', '李四', '王五']

scores.values()  # 获取所有的values
print(scores.values(), type(scores.values()))
#  dict_values([100, 98, 45]) <class 'dict_values'>
print(list(scores.values()))  # 将所有的value组成的试图转换为列表
# [100, 98, 45]

scores.items()  # 获取所有的keys,values(键值对)
print(scores.items())
# dict_items([('张三', 100), ('李四', 98), ('王五', 45)])
print(list(scores.items()))  # 转换之后的list类型为元组
# [('张三', 100), ('李四', 98), ('王五', 45)]  # 元组

6.字典的推导式

        字典元素的遍历

scores = {'张三': 100, '李四': 98, '王五': 45}
for item in scores:  # 遍历的字典元素所有的键
    print(item, end='\t')
# 遍历的字典元素所有的值
for item in scores:
    print(scores[item], scores.get(item))
for item in scores.values():
    print(item)

        字典的生成式

        使用内置函数zip(),用于将可迭代的对象作为参数,将对象中相应的元素打包成一个元组,然后返回由这些元组组成的列表。

item = ['张三', '李四', '王五']
lst = [100, 200, 300, 400, 500]
scores1 = zip(item, lst)
print(list(scores1))  # 生成的是元组组成的列表
scores1 = zip(item, lst)
print(dict(scores1))  # 生成的是字典

scores = {item: lst for item, lst in zip(item, lst)}   # 在进行打包时,会以元素少的那部分为基准而生成
print(scores)

7.字典的特点

  •         字典的所有元素都是一个key-value对,key不允许重复,value可以重复
  •         字典的元素是无序的
  •         字典的key必须是不可变对象
  •         字典也可以根据需要动态伸缩
  •         字典会浪费较大的内存,是一种空间换时间的数据结构
scores = {'张三': 100, '李四': 98, '王五': 45, "张三": 500, "新张三": 100}
print(scores)  # 键不允许重复,重复的话会出现值覆盖的情况,value是可以重复的
# {'张三': 500, '李四': 98, '王五': 45, '新张三': 100}

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年6月15日
下一篇 2023年6月15日

相关推荐