沉铝汤的破站

IS LIFE ALWAYS THIS HARD, OR IS IT JUST WHEN YOU'RE A KID

python-字典

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()) 

这里比较懒,加速了,抄的书上的代码