经历过七夕的恐怖气息之后,想想程序猿会有女朋友?不存在的,代码才是真爱,继续 Python 的学习之旅—— 字典。
开车.png接触过 java 的朋友肯定知道 map 数据结构 ,以键值对的形式存储数据,即 key--value 的形式,Python 中的 字典,就相当于 java 中的 map,字典可存储的信息量几乎不受限制,以键值对的形式存在,可以很准确的为各种真实物体建模,而且存储数据是动态的,可以随时添加键值对,没有限制。例如可以创建一个表示人的字段,存储有关于人的一切信息:身高,体重,家庭住址等等。
字典基本定义
使用 {}
包含一系列键值对数据,其中 键 必须为 String 格式。
person = {'name': '张少林', 'age': 24,'address': 'zhangzhou'}
访问字典中的值
格式 字典名[键]
获取对于键的 value
person = {'name': '张少林', 'age': 24, 'address': 'zhangzhou'}
print(person['name'])
结果为张少林
添加 key-value
字典可以存储任意多个 key-value,可以随时在字典中添加任意个 key-value 值,字典名[键]
赋值即可。
person = {} //定义空字典
person['name'] = '张少林'//添加值
person['age'] = 24//添加值
print(person)
结果为:{'name': '张少林', 'age': 24}
更新字典中的值
字典名[键]
赋值,加入键已经存在,则更新,不存在则新增
person = {}
person['name'] = '张少林'
person['age'] = 24
print(person)
person['age'] = 18 //修改age字段的值
print(person)
结果为:
{'name': '张少林', 'age': 24}
{'name': '张少林', 'age': 18}
永久性删除字典中的值
使用 del 删除字典的 key-value
del person['age']
print(person)
结果为:{'name': '张少林'}
注意:这样是永久删除该键值对
遍历所有的 key-value
person = {
'name': '张少林',
'age': 24,
'address': 'zhangzhou'
}
for key,value in person.items():
print('key:',key,'--->','value:',value)
结果为:
key: address ---> value: zhangzhou
key: name ---> value: 张少林
key: age ---> value: 24
遍历所有的 key
for key in person.keys():
print('key:',key)
结果为:
key: address
key: age
key: name
按顺序遍历所有键
for key in sorted(person.keys()):
print('key:',key)
结果为:
key: address
key: age
key: name
遍历所有的 value 值
for value in person.values():
print('value:',value)
结果为:
value: zhangzhou
value: 24
value: 张少林
在列表中存储字典
字典就类似 java
对象一样,存储着一类事物的信息,有时候需要存储一些同类事物的信息,可以使用在列表中存储字典
alien_0 = {'color':'green','point':5}
alien_1 = {'color':'yellow','point':10}
alien_2 = {'color':'red','point':15}
aliens = [alien_0,alien_1,alien_2]
for alien in aliens:
print(alien)
结果为:
{'point': 5, 'color': 'green'}
{'point': 10, 'color': 'yellow'}
{'point': 15, 'color': 'red'}
在字典中存储列表
类似 java
对象中包含的信息,有可能一个字段包含的信息量很多,可以是一个列表,所以可以在字典中存储列表
pizza = {
'crust': 'thick',
'toppings': ['mushrooms', 'extra cheese']
}
print(pizza['crust'])
for topping in pizza['toppings']:
print(topping)
结果为:
thick
mushrooms
extra cheese
在字典中存储字典
users = {
'aeinstein':{
'first':'albert',
'last':'aeinstein',
'location':'princeton',
},
'mcurie':{
'first':'marie',
'last':'curie',
'location':'paris',
}
}
for name,userInfos in users.items():
print('name---->',name)
for key,userInfo in userInfos.items():
print('key-->',key,'userInfo--->',userInf
结果为:
name----> mcurie
key--> last userInfo---> curie
key--> first userInfo---> marie
key--> location userInfo---> paris
name----> aeinstein
key--> last userInfo---> aeinstein
key--> first userInfo---> albert
key--> location userInfo---> princeton
注意:遍历字典的时候都没有按顺序的,取值只关心键对应的值
检查 key 是否存在
if 'aeinstein' in users:
print('aeinstein is here!')
结果:aeinstein is here!
使用 get()
方法获取字典值
之前使用 字典名[键]
形式直接获取字典对应键的值,加入 key 不存在会报错,可以使用 get
获取值,加入 key 不存在,显示 None 值,当然 get() 可以传入默认值,加入key 值不存在,则显示传入的默认值。
person = {
'name': '张少林',
'age': 24,
'address': 'zhangzhou'
}
print(person.get('name','小林'))
结果打印张少林
简单记录一下学习笔记,如有不足之处,麻烦评论区之处,谢谢
张少林同学.jpg更多原创文章会在公众号第一时间推送,欢迎扫码关注 张少林同学
网友评论