python中的字典

目录

1.什么是字典

2.字典的原理

3.字典的创建与删除

4.字典的查询操作

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

6.字典的推导式

        字典元素的遍历

        字典的生成式

7.字典的特点


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}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值