1、練習1(字典)
字典dic,dic = {‘k1’:‘v1’, ‘k2’: ‘v2’, ‘k3’: [11,22,33]}
(1). 請循環輸出所有的key
dic = {"k1": "v1", "k2": "v2", "k3": [11, 22, 33]}
for k in dic.keys():print(k)
k1
k2
k3
(2). 請循環輸出所有的value
for v in dic.values():print(v)
v1
v2
[11, 22, 33]
(3). 請循環輸出所有的key和value
for k, v in dic.items():print(k, v)
k1 v1
k2 v2
k3 [11, 22, 33]
(4). 請在字典中添加一個鍵值對,“k4”: “v4”,輸出添加后的字典
dic["k4"] = "v4"
print(dic)
{'k1': 'v1', 'k2': 'v2', 'k3': [11, 22, 33], 'k4': 'v4'}
(5). 請在修改字典中 “k1” 對應的值為 “kidd”,輸出修改后的字典
dic["k1"] = "kidd"
print(dic)
{'k1': 'kidd', 'k2': 'v2', 'k3': [11, 22, 33], 'k4': 'v4'}
(6). 請在k3對應的值中追加一個元素 44,輸出修改后的字典
dic["k3"].append(44)
print(dic)
{'k1': 'kidd', 'k2': 'v2', 'k3': [11, 22, 33, 44], 'k4': 'v4'}
(7). 請在k3對應的值的第 1 個位置插入個元素 18,輸出修改后的字典
dic["k3"].insert(1, 18)
print(dic)
{'k1': 'kidd', 'k2': 'v2', 'k3': [11, 18, 22, 33, 44], 'k4': 'v4'}
2、練習2(列表字典)
有如下值li= [11,22,33,44,55,66,77,88,99,90],將所有大于 66 的值保存至字典的第一個key中,將小于 66 的值保存至第二個key的值中。
即: {‘k1’: 大于66的所有值列表, ‘k2’: 小于66的所有值列表}
li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
v1 = [i for i in li if i > 66]
v2 = [j for j in li if j < 66]
res_dic = {"k1":v1,"k2":v2}
print(res_dic)
{'k1': [77, 88, 99, 90], 'k2': [11, 22, 33, 44, 55]}
3、練習3(字典)
- 創建一個字典,包含你最喜歡的三種水果和它們的價格。
- 打印字典中所有鍵值對。
dic_fruits = {"apple": 2, "banana": 4, "orange": 5}
for k, v in dic_fruits.items():print(k, v)
apple 2
banana 4
orange 5
- 添加一種新的水果和它的價格。
dic_fruits["mango"] = 7
print(dic_fruits)
{'apple': 2, 'banana': 4, 'orange': 5, 'mango': 7}
- 修改一種水果的價格。
dic_fruits["apple"] = 3
print(dic_fruits)
{'apple': 3, 'banana': 4, 'orange': 5, 'mango': 7}
- 刪除一種水果及其價格。
del dic_fruits['banana']
print(dic_fruits)
{'apple': 3, 'orange': 5, 'mango': 7}
4、練習4(字典)
- 創建一個字典,包含你的朋友的姓名和他們的年齡。
- 使用循環打印出每個朋友的姓名和年齡。
frinds_dic = {"zl": 23, "zff": 24, "jwj": 22}
for k, v in frinds_dic.items():print(f"姓名:{k}, 年齡:{v}")
姓名:zl, 年齡:23
姓名:zff, 年齡:24
姓名:jwj, 年齡:22
- 將朋友的年齡加上 1,并更新字典中對應的值。
frinds_dic = {"zl": 23, "zff": 24, "jwj": 22}
for name,age in frinds_dic.items():age = age + 1frinds_dic[name] = age
print(frinds_dic)
{'zl': 24, 'zff': 25, 'jwj': 23}
5、練習5(列表字典)
# 聲明一個字典保存一個學生的信息,學生信息中包括: 姓名、年齡、成績(單科)、手機號、性別(男、女、不明)
student = {"name": "張三", "age": "23", "score": 88, "tel": "23423532", "gender": "男"}
# 聲明一個列表,在列表中保存6個學生的信息(6個題1中的字典)
students = [{"name": "張三", "age": 23, "score": 88, "tel": "23423532", "gender": "男"},{"name": "李四", "age": 26, "score": 80, "tel": "12533453", "gender": "女"},{"name": "王五", "age": 15, "score": 58, "tel": "56453453", "gender": "男"},{"name": "趙六", "age": 16, "score": 57, "tel": "86786785", "gender": "不明"},{"name": "小明", "age": 18, "score": 98, "tel": "23434656", "gender": "女"},{"name": "小紅", "age": 23, "score": 72, "tel": "67867868", "gender": "女"},
]
1.統計不及格學生的個數
2.打印不及格學生的名字和對應的成績
students = [{"name": "張三", "age": 23, "score": 88, "tel": "23423532", "gender": "男"},{"name": "李四", "age": 26, "score": 80, "tel": "12533453", "gender": "女"},{"name": "王五", "age": 15, "score": 58, "tel": "56453453", "gender": "男"},{"name": "趙六", "age": 16, "score": 57, "tel": "86786785", "gender": "不明"},{"name": "小明", "age": 18, "score": 98, "tel": "23434656", "gender": "女"},{"name": "小紅", "age": 23, "score": 72, "tel": "67867868", "gender": "女"},
]
num = 0
for i in students:if i["score"] < 60:num += 1print(i["name"],i["score"])
print(num)
王五 58
趙六 57
2
3.統計未成年學生的個數
teen_student = 0
for i in students:if i["age"] < 18:teen_student += 1
print(teen_student)
2
4.打印手機尾號是8的學生的名字
for i in students:if i["tel"][-1] == "8":print(i["name"])
小紅
5.打印最高分和對應的學生的名字
max_score = 0
for i in students:if i["score"] > max_score:max_score = i["score"]max_student = i["name"]
print(max_score,max_student)
98 小明
6.將列表按學生成績從大到小排序
scores =[i["score"] for i in students]
print(sorted(scores,reverse=True))
[98, 88, 80, 72, 58, 57]
7.刪除性別不明的所有學生
for i in students:if i["gender"]=="不明":students.remove(i)
print(students)
[{'name': '張三', 'age': 23, 'score': 88, 'tel': '23423532', 'gender': '男'}, {'name': '李四', 'age': 26, 'score': 80, 'tel': '12533453', 'gender': '女'}, {'name': '王五', 'age': 15, 'score': 58, 'tel': '56453453', 'gender': '男'}, {'name': '小明', 'age': 18, 'score': 98, 'tel': '23434656', 'gender': '女'}, {'name': '小紅', 'age': 23, 'score': 72, 'tel': '67867868', 'gender': '女'}]
6、練習6(列表)
#用三個列表表示三門學科的選課學生姓名(一個學生可以同時選多門課)
chinese = ['小明','小張','小黃','小楊']
math = ['小黃','小李','小王','小楊','小周']
english = ['小楊','小張','小吳','小馮','小周']
# 1、求選課學生總共有多少人
chinese = ["小明", "小張", "小黃", "小楊"]
math = ["小黃", "小李", "小王", "小楊", "小周"]
english = ["小楊", "小張", "小吳", "小馮", "小周"]
students = []
for i in chinese + math + english:if i not in students:students.append(i)
print(students)
print(len(students))
['小明', '小張', '小黃', '小楊', '小李', '小王', '小周', '小吳', '小馮']
9
#2、求只選了第一個學科的人的數量和對應的名字
num = 0
for i in chinese:if i not in math + english:print(i)num += 1
print(num)
小明
1
# 3、求只選了一門學科的學生的數量和對應的名字
set1 = set(chinese)
set2 = set(math)
set3 = set(english)
num1 = 0
for i in students:if i not in (set1 & set2) | (set1 & set3) | (set2 & set3):num1 += 1print(i)
print(num1)
小明
小李
小王
小吳
小馮
5
# 4、求只選了兩門學科的學生的數量和對應的名字(選做)
num4 = 0
for i in students:if i in ((set1 & set2) | (set1 & set3) | (set2 & set3)) - (set1 & set2 & set3):num4 += 1print(i)
print(num4)
小張
小黃
小周
3
#5、求選了三門學生的學生的數量和對應的名字(選做)
num5 = 0
for i in students:if i in set1 & set2 & set3:num5 += 1print(i)
print(num5)
小楊
1