一篇搞定python基础(八)
【摘要】 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)