python基本数据结构-字典
python的数据结构来回学习很多遍,这次进行归纳总结,方便python的初学者查看,包括列表,字典,元祖,集合,文章会从增删查的维度改来演示
创建字典
1、使用 {} 创建字典
scores = {'数学': 95, '英语': 92, '语文': 84}
创建空字典
# 创建空字典
dict2 = {}
print(scores)
2、 通过列表生成字典,列表里的值是key,value默认是None
使用 fromkeys
knowledge = ['语文', '数学', '英语']
scores = dict.fromkeys(knowledge)
print(scores)
{'语文': None, '数学': None, '英语': None}
访问字典,获取字典元素
方法1:
scores = {'数学': 95, '英语': 92, '语文': 84}
print(scores['语文'])
84
方法2:如果key值不存在,会报错
scores = {'数学': 95, '英语': 92, '语文': 84}
print(scores['物理'])
Traceback (most recent call last):
File "D:\2022TestTrain\16课\16-010-字典获取元素示例.py", line 4, in <module>
print(scores['物理'])
KeyError: '物理'
方法3:如果key值不存在,返回默认值0,不会报错 ----> 最为推荐哦
scores = {'数学': 95, '英语': 92, '语文': 84}
print(scores.get('物理',0))
遍历字典数据的方法
方法1:向字典里添加一个key为“物理”,value为100的字典
dict1 = {'数学': 95, '语文': 89, '英语': 90}
dict1['物理'] = 100
方法2:返回字典里所有的key值的方法
dict1 = {'数学': 95, '语文': 89, '英语': 90}
dict1['物理'] = 100
for k in dict1.keys():
print(k, end=' ')
数学 语文 英语 物理
方法3:返回字典里所有value值的方法
dict1 = {'数学': 95, '语文': 89, '英语': 90}
dict1['物理'] = 100
for v in dict1.values():
print(v, end=' ')
95 89 90 100
方法4:把key和value都打印出来
dict1 = {'数学': 95, '语文': 89, '英语': 90}
dict1['物理'] = 100
for k, v in dict1.items():
print("key:", k, " value:", v)
key: 数学 value: 95
key: 语文 value: 89
key: 英语 value: 90
key: 物理 value: 100
方法5:当存在条件判断时,怎么使用
dict1 = {'数学': 95, '语文': 89, '英语': 90}
dict1['物理'] = 100
if "语文" not in dict1:
print("没有语文")
else:
print("有语文")
有语文
方法6:如果你对某个变量/方法名有哪些用法不知道的话,可以用dir(变量名/方法名),这是终极大招
dict1 = {'数学': 95, '语文': 89, '英语': 90}
dict1['物理'] = 100
print(dir(dict1))
['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values','__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__']