Python学习——字典

一、字典的定义
(1)字典也是Python内置的数据结构之一,和列表一样都是可变序列,也就是说字典也能够进行增、删、改的操作。字典是以键值对的方式存储数据的,所以在字典中包含键和值。不同于数组,字典是一个无序的序列,也就是说第一个存入字典的元素,不一定是第一个输出的元素,字典中存储元素的位置,是根据hash函数计算得来的,字典中的键不可变,也就是说键不可以进行增、删、改操作。
(2)字典的实现原理
Python中的字典是根据key查找value所在的位置。
(3)字典的格式
字典名={key1:value1, key2:value2, key3:value3}
二、字典的创建
方式一:使用花括号
方式二:使用内置函数dict()

#使用花括号
scores={'一':377,'二':330,'三':357}
print(scores)

#使用内置函数dict
student=dict(name='jack',age=20)
print(student)

#创建一个空字典
d={}
print(d)

运行结果
在这里插入图片描述
三、字典元素的获取
方式一:使用方括号[],利用键获取值

#使用方括号获取字典中的元素
scores={'一':377,'二':330,'三':357}
print(scores['二'])

运行结果
在这里插入图片描述
如果没有所搜索的键,则会报错keyerror

#使用方括号获取字典中的元素
scores={'一':377,'二':330,'三':357}
print(scores['四'])

运行结果
在这里插入图片描述
方法二:使用get

#使用get
scores={'一':377,'二':330,'三':357}
print(scores.get('二'))

运行结果
在这里插入图片描述
如果没有所要搜索的键,则显示none

#使用get
scores={'一':377,'二':330,'三':357}
print(scores.get('四'))

运行结果
在这里插入图片描述
在这里插入图片描述
如果所查找的键不存在时,输出一个规定的值

#使用get
scores={'一':377,'二':330,'三':357}
#若所查找的键不存在时,输出一个规定的值
print(scores.get('四',325))

运行结果
在这里插入图片描述
四、字典中键是否存在的判断
有in和not in,返回结果是true和false。

#键存在的判断
scores={'一':377,'二':330,'三':357}
print('二' in scores)
print('二'not in scores)
print('四' in scores)
print('四'not in scores)

运行结果
在这里插入图片描述
五、字典元素的删除
(1)用del 删除指定的键值对

#键值对的删除
scores={'一':377,'二':330,'三':357}
del scores['一']
print(scores)

运行结果
在这里插入图片描述
(2)清空字典中的所有元素

#清空字典中的所有元素
scores={'一':377,'二':330,'三':357}
scores.clear()
print(scores)

运行结果
在这里插入图片描述
六、字典元素的新增
就是新增加键值对,一个键值对的增加

#字典中元素的添加
scores={'一':377,'二':330,'三':357}
print('初始字典',scores)

scores['四']=409
print('添加元素之后的字典',scores)

运行结果
在这里插入图片描述
增加多个键值对也可以采用下面一个办法

#字典中元素的添加
scores={'一':377,'二':330,'三':357}
print('初始字典',scores)

scores['四']=409
scores['五']=500
print('添加元素之后的字典',scores)

运行结果
在这里插入图片描述
七、字典元素的修改
由前面可知,字典中的键不可修改,但这里可以对字典中的值进行修改。

#字典中元素的修改
scores={'一':377,'二':330,'三':357}
print('初始字典',scores)

scores['三']=857
print('修改后的字典',scores)

运行结果
在这里插入图片描述
八、获取字典视图
获取字典视图,可以是获取字典中所有的key,value或者是所有的键值对。

#获取字典视图
scores={'一':377,'二':330,'三':357}
#获取所有的键
keys=scores.keys()
print(keys)
print(type(keys))
print(list(keys))#将keys转换为列表


#获取所有的值
values=scores.values()
print(values)
print(type(values))
print(list(values))#将values转换为列表

#获取所有的键值对
items=scores.items()
print(items)
print(type(items))
print(list(items))#转换之后是元组

运行结果
在这里插入图片描述
九、字典元素的遍历

scores={'一':377,'二':330,'三':357}
#字典元素的遍历
for item in scores:
    print(item)

运行结果
在这里插入图片描述
输出的都是键,但是我们可以根据键去获取值

scores={'一':377,'二':330,'三':357}
#字典元素的遍历
for item in scores:
    print(item,scores[item])

运行结果
在这里插入图片描述
或者用get的方法

scores={'一':377,'二':330,'三':357}
#字典元素的遍历
for item in scores:
    print(item,scores.get(item))

运行结果
在这里插入图片描述
十、字典的特点
(1)键不可以重复,否则会出现值覆盖的情况

#键不可以重复,否则会出现值覆盖的情况
dic={'分数':857,'分数':587}
print(dic)

运行结果
在这里插入图片描述
(2)值可以重复

#值可以重复
dic={'分数':857,'成绩':857}
print(dic)

运行结果
在这里插入图片描述
(3)字典的元素是无序的,所以没法在指定位置上再插入一个键值对。
(4)字典中的键也还是不可变对象
(5)字典的内存空间是动态分配的
(6)字典会占有较大的内存
十一、字典生成式
{键:值 for 键,值 in zip(键,值)}

#字典生成式
names=['张三','李四','王二麻子']
scores=[98,99,97]

dic={names:scores  for names,scores in zip(names,scores)}
print(dic)

运行结果
在这里插入图片描述
十二、总结
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值