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 字典基础知识和常用函数的主要内容,如果未能解决你的问题,请参考以下文章

Python学习杂记_6_字典常用操作

Python基础-字典(字典常用函数/操作/字典遍历)

想学python从哪里入手

python面试知识总结

Python学习—基础篇之常用模块

[python]一些常用的python知识总结