0x00 第一印象
感觉就像是结构体或者类
0x01 使用字典
创建字典
字典是一系列键–值对,用花括号括起来,键和值之间用冒号,键–值对之间用逗号隔开, 如下:
Alen = {"age": 18, "sex": "male"}
访问字典中的元素
如下:
print(Alen["sex"])
添加键–值对
如下:
Alen = {"age": 18, "sex": "male"}
Alen["weight"] = 115
print(Alen)
>>{'age': 18, 'sex': 'male', 'weight': 115}
修改键–值对
如下:
Alen = {"age": 18, "sex": "male"}
Alen["age"] = 19
print(Alen)
>>{'age': 19, 'sex': 'male'}
删除键–值对
如下:
Alen = {"age": 18, "sex": "male"}
del Alen["age"]
print(Alen)
>>{'sex': 'male'}
0x02 遍历字典
遍历所有键–值对
使用items()方法
如下:
Alen = {"age": 18, "sex": "male"}
for key, value in Alen.items():
print("Key:" + key)
print("Value:" + value)
Key:age Value:18 Key:sex Value:male
遍历字典中所有键
使用keys()方法,但由于python遍历字典时默认遍历键,所以其实也可以不需要
如下:
Alen = {"age": 18, "sex": "male"}
for key in Alen.keys():
print("Key:" + key)
#for key in Alen:
# print("key:" + key)
keys()方法的另一种使用
if "xx" in dirc.keys()
按顺序遍历字典中的所有键
书上说字典获取元素时,获取顺序不一定,然而我自己在vscode 和 WSL上都没发现,但可能时我数据的特殊性吧,这里还是写一下
for name in sorted(dirc.keys()):
使用排序函数
遍历字典中的所有值
使用方法values(),如果要踢出重复的值可使用set()方法
for value in set(dirc.values()):
0x03 嵌套
在列表中嵌套字典,在字典中嵌套列表,在字典中嵌套字典
字典列表
顾名思义就是在列表中嵌套字典
friends = []
for count in range(0, 30):
new_friend = {'name': secert, 'age': 18}
friends.append(new_friend)
print(friends)
>>[{'name': 'secert', 'age': 18}, {'name': 'secert', 'age': 18}, {'name': 'secert', 'age': 18}]
在字典中存储列表
favorite_languages = {
'jen': ['python', 'ruby'],
'sarah': ['c'],
'edward': ['ruby', 'go'],
'phil': ['python', 'haskell'],
}
for name, languages in favorite_languages.items():
print("\n" + name.title() + "'s favorite languages are:")
for language in languages:
print("\t" + language.title())
在字典中存储字典
users = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
for username, user_info in users.items():
print("\nUsername: " + username)
full_name = user_info['first'] + " " + user_info['last']
location = user_info['location']
print("\tFull name: " + full_name.title())
print("\tLocation: " + location.title())
这里比较懒,加速了,抄的书上的代码