python的字典数据类型,由多个 键-值 对构成,类似于查英汉字典,利用英语单词找到其对应的中文意思
字典相关操作如下:
#定义 逗号分隔多个键值对, a:b a是键(通常是字符串),b是值(可以是任意类型)
xiaoming={"name":"xiaoming","age":20,"hobby":"guitar"}
#访问 使用 字典名[键名] 访问元素 (ps: 不可按列表的顺序访问,因为字典类型不关心顺序)
xiaoming["age"] #result: 20
#添加键值对 直接定义并赋值
xiaoming["girlfrd"]="xiaomei"
#改变键值
xiaoming["age"]=xiaoming["age"]+1
#删除键值对 del 字典名[键名]
del xiaoming['girlfrd'] # sad story
重要一点的,遍历字典
#for循环遍历字典键值对 使用items() 方法,该方法返回键值对列表(元组)
for xmkey,xmvalue in xiaoming.items():
print(xmkey + ":" + str(xmvalue))
#仅遍历字典键 使用keys()方法
for xmkey in xiaoming.keys():
print(xmkey)
#可以用来检查字典中是否有该对象(键)
if "girlfrd" not in xiaoming.keys():
print("yes,he has not a girlfrind")
#按顺序遍历字典 :字典是无序的,所以需要使用排序函数sorted(listname)
for xmkey in sorted(xiaoming.keys()):
print(key)
#result: age hobby name
#遍历字典的值 当然也可以排序
for xmvalue in xiaoming.values():
print(xmvalue)
more important,嵌套
可以有多种形式,如:1)列表中嵌字典,称为列表字典
stu1={"name":"x1","age":20}
stu2={"name":"x2","age":21}
stu3={"name":"x3","age":22}
stus=[stu1,stu2,stu3]
2)字典中存储列表
frds=['x1','x2','x3']
xiaoming={
'name':'xiaoming',
'friends':frds
}
3)字典中存储字典 (但是尽量使子字典的结构都相同,即拥有相同的子键)
xiaoming={
'name':'xiaoming',
'age':21
}
xiaomei={
'name': 'xiaomei',
'age': 18,
'hobby':'sing'
}
stus={
'xiaoming':xiaoming,
'xiaomei':xiaomei
}