Python学习日记 Day6字典

今天是2020年2月15日,小雨,0~13℃

一、字典简介

在Python中,字典是一系列键—值对,每个键都与一个值相关联,通过键可以访问键对应的值。键对应的值可以是数字、字符串、列表乃至字典。实际上,可将任何Python对象用作字典的值。
字典用花括号表示,键值对之间用逗号分隔;先指定键,再指定值;键和值之间需要冒号。
在建立字典后,可通过指定索引为键的方式访问该值。

#dictionary = {key1 : value1,key2 : value2,...}
person_1 = {"Name" : "Micheal","Gender" : "male","Age" : 21}
print(person_1["Name"])
print(person_1["Gender"])
print(person_1["Age"])
'''
Output:
Micheal
male
21
'''

二、字典的简单操作

1、创建空字典

在花括号内不添加任何信息,即可创建一个空字典。

person_1 = {}
print(person_1)			#Output:{}

2、添加键—值对

要添加键值对,可指定字典名,指定索引为新键,并赋相关联的值。

person_1["Name"] = "Micheal"
person_1["Age"] = 21
person_1["Gender"] = "Male"
person_1["Major"] = "CS"
print(person_1)			#Output:{'Name': 'Micheal', 'Age': 21, 'Gender': 'Male', 'Major': 'CS'}

3、修改值

要修改键所对应的值,可指定字典名,指定索引为需要修改的键,并赋新值。

person_1["Age"] = 20
print(person_1)			#Output:{'Name': 'Micheal', 'Age': 20, 'Gender': 'Male', 'Major': 'CS'}

4、删除键—值对

要删除不需要的键值对,可使用del关键字。

del person_1["Major"]
print(person_1)			#Output:{'Name': 'Micheal', 'Age': 20, 'Gender': 'Male'}

5、字典使用方法:单对象的多信息或多对象的同信息

在上面的例子中,字典都用来储存单个对象的多个信息,如person_1的姓名,年龄等;除此之外,字典还可以储存多个对象的同个信息。

students_homelands = {
    "Micheal" : "America",
    "LiMing" : "China",
    "Ivan" : "Russia"
    }
print(students_homelands["Micheal"])
print(students_homelands["LiMing"])
print(students_homelands["Ivan"])
'''
Output:
America
China
Russia
'''

三、遍历字典

字典可以储存大量的、多种的数据,因此有多种方式遍历字典的键—值对,键或值。

1、遍历所有的键—值对

使用 for 循环语句和 items 方法可以遍历字典的所有键值对。
在这里,for循环语句需要两个变量以分别储存键和值。

students_homelands = {
    "Micheal" : "America",
    "LiMing" : "China",
    "Ivan" : "Russia"
    }
for student,homeland in students_homelands.items():
	print(student + " is from " + homeland)
'''
Output:
Micheal is from America
LiMing is from China
Ivan is from Russia
'''

2、遍历所有的键

使用 for 循环和 keys 方法可以遍历字典的所有键。

for student in students_homelands.keys():
	print("This student's name is " + student)
'''
Output:
This student's name is Micheal
This student's name is LiMing
This student's name is Ivan
'''

实际上,不使用 keys 方法而直接使用字典名与此效果相同。但为了代码易读性,加上该方法更好。

在遍历键时,也可以通过键访问值的方式达到与1中相同的输出。

for student in students_homelands.keys():
	homeland = students_homelands[student]
	print(student + " is from " + homeland)
'''
Output:
Micheal is from America
LiMing is from China
Ivan is from Russia
'''

3、遍历所有的值

使用 for 循环和 values 方法可以遍历字典所有的值。

for homeland in students_homelands.values():
	print(homeland)
'''
Output:
America
China
Russia
'''

keys 方法,values 方法和 items 方法均返回一个列表。

4、按顺序遍历字典的所有键

在遍历字典时,遍历顺序往往不是有序的,甚至与存储顺序也不同。当需要按序遍历时,可以使用 sorted 函数。

for student in sorted(students_homelands.keys()):
    homeland = students_homelands[student]
    print(student + " is from " + homeland)
'''
Output:
Ivan is from Russia
LiMing is from China
Micheal is from America
'''

四、字典嵌套

1、字典列表

可以将字典储存在列表中,使之可以管理更多的信息。

student_0 = {"Name" : "Micheal" , "Gender" : "Male" , "Age" : 20}
student_1 = {"Name" : "Chris" , "Gender" : "Male" , "Age" : 18}
student_2 = {"Name" : "Lily" , "Gender" : "Female" , "Age" : 21}
student_list = [student_0,student_1,student_2]
for student in student_list:
    print("My name is " + student["Name"] + ", I'm " + student["Gender"] + ", I'm " + str(student["Age"]) + " years old.")
'''
Output:
My name is Micheal, I'm Male, I'm 20 years old.
My name is Chris, I'm Male, I'm 18 years old.
My name is Lily, I'm Female, I'm 21 years old.
'''

有时,列表中的字典很多,可以使用循环来重复生成列表。

student_list = []
for student_number in range(30):
    new_student = {"Name" : "" , "Gender" : "" , "Age" : 0}
    student_list.append(new_student)

如此便得到一个存有30个学生的列表,但列表内学生没有信息,还需要其它操作。

#前十五个学生是女生,后十五个是男生
for student_number in range(0,30):
    student = student_list[student_number]
    if student_number < 15:
        student["Gender"] = "Female"
    else:
        student["Gender"] = "Male"
#前十个学生20岁,中间十个21岁,后十个22岁
for student_number in range(0,30):
    student = student_list[student_number]
    if student_number < 10:
        student["Age"] = 20
    elif student_number < 20:
        student["Age"] = 21
    else:
        student["Age"] = 22

2、在字典中储存列表

有时需要将列表储存在字典中,如饭店里每个桌点菜:

#订单
orders = {
    "Table1" : ["Hamburger" , "Chips"],
    "Table2" : ["Pizza" , "Cola"],
    "Table3" : ["FrideChicken" , "Cola"],
    }

3、在字典中储存字典

用字典中储存字典的方式,可以保存多个对象的多个信息。

students = {
    "John" : {"Age" : 20 , "Gender" : "Male"},
    "Alex" : {"Age" : 19 , "Gender" : "Male"},
    "Lily" : {"Age" : 22 , "Gender" : "Female"}
    }

字典和列表的嵌套层级不应过多,否则代码容易复杂起来,不易于阅读且更容易出错。

精神世界中所能达到的可能极限并没有我们所想象的那样狭窄。决定其边界的,是我们的弱点、罪恶和偏见。

发布了17 篇原创文章 · 获赞 1 · 访问量 494

猜你喜欢

转载自blog.csdn.net/weixin_44712386/article/details/104328560
今日推荐