Python学习6 字典基础知识和常用函数
Posted DQ_CODING
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习6 字典基础知识和常用函数相关的知识,希望对你有一定的参考价值。
字典概念
字典是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据。为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value
语法:
注意事项:
键值对,类似Java的Set
增加字典
删除字典
del与popitem一样,删除一个元素,返回被删除这个元素的 key-value
修改字典
查找字典
直接查找
使用get()函数查找字典
合并两个字典-update()函数
遍历字典
1.for循环
2.keys()遍历
3.values()遍历
4.items()遍历
遍历字典-sorted()和Set()函数
按顺序遍历所有键
要以特定顺序返回元素,我们可以使用 sorted() 函数来获得按特定顺序排列的键列表副本。
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的list,而不是在原来的基础上进行的操作。
for name in sorted(dict2.keys()):
print(name.title())
当值中含有很多重复值时,为了剔除重复项,可使用集合 set()
for name in set(dict2.values()):
print(name.title())
字典推导式
字典嵌套
将字典储存在列表中,或者将列表储存在字典中,称为嵌套。
字典列表
dict1 = {'物理':90,'化学':85,'生物':88}
dict2 = {'物理':95,'化学':88,'生物':70}
dict3 = {'物理':80,'化学':90,'生物':75}
dict4 = [dict1,dict2,dict3]
for a in dict4:
print(a)
字典嵌套列表
dict5 = {
'color':'blue',
'type':['A','B','C']
}
字典嵌套字典
dict6 = {
'a':{
'name':'Tom',
'age':6
}
'b':{
'name':'Marry',
'age':10
}
}
练习1-字典列表:用户输入姓名
# 让用户输入姓名,
# 如果该姓名在 persons 中存在,提示用户;
# 若不存在,继续输入年龄到列表中。
persons = [
{'name': 'Tom', 'age': 18},
{'name': 'lisa', 'age': 15},
{'name': 'Sufv', 'age': 20},
{'name': 'Linda', 'age': 13}
]
print(persons)
flag = True
while flag:
name = input("请输入姓名")
for i in persons:
if name == i["name"]:
print("该姓名在 persons 中存在,结束循环")
flag = False
break
else:
age = int(input("请输入年龄"))
check = {}
check[name] = age
persons.append(check)
break
print(persons)
练习3-字典列表输出最高分和最低分对应的学生姓名
students = [
{'name': '张三', 'age': 18, 'score': 88, 'tel': '1323454658', 'gender': '男'},
{'name': '李四', 'age': 19, 'score': 89, 'tel': '1111454656', 'gender': '女'},
{'name': 'jack', 'age': 38, 'score': 30, 'tel': '12142344562', 'gender': '不明'},
{'name': '小白', 'age': 26, 'score': 35, 'tel': '12142345658', 'gender': '女'},
{'name': '可文', 'age': 20, 'score': 90, 'tel': '1903334258', 'gender': '男'},
{'name': 'mike', 'age': 14, 'score': 100, 'tel': '1345555678', 'gender': '女'},
]
max=students[0]["score"]
min=students[0]["score"]
maxStudent=''
minStudent=''
for i in students:
max = max if max > i["score"] else i['score']
min = min if min < i["score"] else i['score']
for j in range(len(students)):
if max == students[j]["score"]:
maxStudent = students[j]["name"]
if min == students[j]["score"]:
minStudent = students[j]["name"]
print(max,min,maxStudent,minStudent,sep=' ')
综合练习-字典列表:学生信息输出
# 4
# 声明一个列表,列表中包含6位学生的信息,
# 每位学生的信息包括:
# 姓名,年龄,分数(单科),电话,性别(男,女,不明)
students = [
{'name': '张三', 'age': 18, 'score': 88, 'tel': '1323454658', 'gender': '男'},
{'name': '李四', 'age': 19, 'score': 89, 'tel': '1111454656', 'gender': '女'},
{'name': 'jack', 'age': 38, 'score': 30, 'tel': '12142344562', 'gender': '不明'},
{'name': '小白', 'age': 26, 'score': 35, 'tel': '12142345658', 'gender': '女'},
{'name': '可文', 'age': 20, 'score': 90, 'tel': '1903334258', 'gender': '男'},
{'name': 'mike', 'age': 14, 'score': 100, 'tel': '1345555678', 'gender': '女'},
]
#(1)统计不及格学生个数;
count=0
for i in students:
if i["score"]<60:
count+=1
print("不及格学生人数:"+str(count))
# (2)打印不及格学生姓名和对应成绩;
count=0
list=[]
for i in students:
if i["score"]<60:
list.append(i["name"]+"的成绩为"+str(i["score"]))
print("不及格学生信息:")
print(list)
# (3)统计未成年学生个数;
count=0
for i in students:
if i["age"]<18:
count+=1
print("未成年学生人数:"+str(count))
# (4)打印手机尾号是8的学生名字;
print('手机尾号是8的学生名字:')
for i in students:
if i["tel"].endswith('8')==True:
print(i["name"])
# (5)打印最高分和对应的学生的名字;
max=students[0]["score"]
maxStudent=''
for i in students:
max = max if max > i["score"] else i['score']
for j in range(len(students)):
if max == students[j]["score"]:
maxStudent = students[j]["name"]
print("最高分:"+str(max)+"对应的学生姓名为:",maxStudent)
# #(6)删除性别不明的所有学生;
j=0
print(students)
for i in students:
if i["gender"]=='不明':
students.pop(j)
j += 1
print(students)
# (7)将列表按学生成绩从大到小排序。
#冒泡排序
print(students)
for i in range(len(students) - 1):
for j in range(len(students) - 1 - i):
if students[j]["age"] < students[j+1]["age"]:
temp = students[j]
students[j] = students[j + 1]
students[j + 1] = temp
print(students)
以上是关于Python学习6 字典基础知识和常用函数的主要内容,如果未能解决你的问题,请参考以下文章