一篇搞定python基础(八)

举报
rivers 发表于 2022/04/15 11:59:06 2022/04/15
【摘要】 python 基础(八),此篇文章主要介绍python字典,包含了字典的含义、原理、创建、获取等知识点。学完后可以掌握并使用基础字典操作

二十三、字典

23.1、什么是字典

  • 字典:python内置的数据结构之一,与列表一样是一个可变序列(能进行增删改)
  • 以键值对的方式存储数据,字典是一个无序的序列

23.2、字典的实现原理

  • 根据key查找value所在的位置,将key放到哈希函数hash()去计算value所在的位置
'''
scores={'张三':100,'李四':98,'王五':45}
字典名  scores
键     '张三'
值      98
'''

23.3、字典的创建

'''字典的创建方式'''
'''方法一:使用{}创建字典'''
scores={'张三':100,'李四':98,'王五':45}
print(scores)
print(type(scores))

结果为:
{'张三': 100, '李四': 98, '王五': 45}
<class 'dict'>

'''方法二:使用内置函数dict()创建字典'''
student=dict(name='jack',age=20)
print(student)

结果为:
{'name': 'jack', 'age': 20}

'''空字典'''
d={}
print(d)

结果为:
{}

23.4、字典元素的获取

'''获取字典中的元素'''
scores={'张三':100,'李四':98,'王五':45}
'''使用[]'''
print(scores['张三'])

结果为:
100

#print(scores['陈留'])#键不存在就报错KeyError: '陈留'

'''使用get()方法'''
print(scores.get('张三'))
print(scores.get('陈留'))#键不存在不会报错,但会输出None
print(scores.get('陈留',99))#99是找不到‘陈留’时提供的一个默认值

结果为:
100
None
99

23.5、字典元素的增删改操作

#key的判断
scores={'张三':100,'李四':98,'王五':45}
print('张三' in scores)
print('张三' not in scores)

结果为:
True
False

del scores['张三']#删除指定的键值对
#scores.clear()#清空字典的元素
print(scores)

结果为:
{'李四': 98, '王五': 45}

scores['陈留']=98#新增元素
print(scores)
scores['陈留']=100#修改元素
print(scores)

结果为:
{'李四': 98, '王五': 45, '陈留': 98}
{'李四': 98, '王五': 45, '陈留': 100}

23.6、获取字典视图

scores={'张三':100,'李四':98,'王五':45}
#获取所有的键
keys=scores.keys()
print(keys)
print(type(keys))
print(list(keys))#将所有的键组成的视图转成列表

结果为:
dict_keys(['张三', '李四', '王五'])
<class 'dict_keys'>
['张三', '李四', '王五']

#获取所有的值
values=scores.values()
print(values)
print(type(values))
print(list(values))

结果为:
dict_values([100, 98, 45])
<class 'dict_values'>
[100, 98, 45]

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

结果为:
dict_items([('张三', 100), ('李四', 98), ('王五', 45)])
<class 'dict_items'>
[('张三', 100), ('李四', 98), ('王五', 45)]

23.7、字典元素的遍历

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

结果为:
张三 100 100
李四 98 98
王五 45 45

23.8、字典的特点

d={'name':'张三','name':'李四'}#键不允许重复,重复会被覆盖
print(d)
d={'name':'张三','nikename':'张三'}#值可以重复
print(d)

结果为:
{'name': '李四'}
{'name': '张三', 'nikename': '张三'}

23.9、字典生成式

#字典生成式
#使用内置函数zip()将对象中对应的元素打包成一个元组,返回由这些元组组成的列表
items=['fruits','books','others']
prices=[96,78,85]
d={ item:price for item,price in zip(items,prices) }
print(d)

结果为:
{'fruits': 96, 'books': 78, 'others': 85}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200