【Python基础学习】4. 数据类型只字典及其操作

数据类型之字典及其操作

1. 什么是字典

在Python中, 字典 是一系列 键—值 对 。每个  都与一个  相关联,你可以使用  来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对象用作字典中的值。

在Python中,字典用放在 花括号{} 中的一系列 键—值 对表示,

示例:

student = {
    'name''张三',
    'college''计算机学院',
    'class''计算机1601' }
print(student) 

键—值 对是两个相关联的值。指定键时,Python将返回与之相关联的值。键和值之间用 冒号 分隔,而 键—值 对之间用逗号分隔。在字典中,你想存储多少个键—值对都可以。

2. 字典的增删改查

2.1 查:字典访问

要获取与键相关联的值,可依次指定字典名和放在方括号内的键。

示例:

student = {
    'name''张三',
    'college''计算机学院',
    'class''计算机1601' }
print(student['name']) 

示例输出:

张三 

2.2 增:添加键—值对

字典是一种动态结构,可随时在其中添加键—值对。要添加键—值对,可依次指定字典名、用方括号括起的键和相关联的值。

可以在已有数据的字典中添加新的键—值对。

示例:

student = {
    'name''张三',
    'college''计算机学院',
    'class''计算机1601' }
print(student)
student['no'] = '202010870101' print(student) 

示例输出:

{'name''张三''college''计算机学院''class''计算机1601'}
{'name''张三''college''计算机学院''class''计算机1601''no''202010870101'} 

也可以通过创建空的字典,然后再添加数据的形式增加键值对。

示例:

student = {}
student['name'] = '张三' student['college'] = '计算机学院' student['class'] = '计算机1601' print(student) 

示例输出:

{'name''张三''college''计算机学院''class''计算机1601'} 

2.3 改:修改字典中的值

要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。

示例:

student = {
    'name''张三',
    'college''计算机学院',
    'class''计算机1601' }
print(student)
student['name'] = '李四' student['class'] = '物联网1601' print(student) 

示例输出:

{'name''张三''college''计算机学院''class''计算机1601'}
{'name''李四''college''计算机学院''class''物联网1601'} 

2.4 删:删除键—值对

对于字典中不再需要的信息,可使用del 语句将相应的键—值对彻底删除。使用del 语句时,必须指定字典名和要删除的键。

示例:

student = {
    'name''张三',
    'college''计算机学院',
    'class''计算机1601',
    'phone''18808089999' }
print(student) del student['phone']
print(student) 

示例输出:

{'name''张三''college''计算机学院''class''计算机1601''phone''18808089999'}
{'name''张三''college''计算机学院''class''计算机1601'} 

3. 遍历字典

一个Python字典可能只包含几个键—值对,也可能包含数百万个键—值对。鉴于字典可能包含大量的数据,Python支持对字典遍历。字典可用于以各种方式存储信息,因此有多种遍历字典的方式:可遍历字典的所有键—值对、键或值。

3.1 遍历所有的键—值对

示例:遍历所有的键—值对

student = {
    'name''张三',
    'college''计算机学院',
    'class''计算机1601',
    'phone''18808089999' }
print(student) for key, value in student.items():
    print(key + '\t:' + value) 

示例输出:

{'name''张三''college''计算机学院''class''计算机1601''phone''18808089999'}
name    :张三
college    :计算机学院 class    :计算机1601 phone    :18808089999 

3.2 遍历所有的键

示例:遍历所有的键

teacher_course = {
    '张老师''数据结构',
    '李老师''算法设计与分析',
    '王老师''数据库系统概论',
    '赵老师''数值分析' }
print(teacher_course) for teacher in teacher_course.keys():
    print(teacher) 

示例输出:

{'张老师''数据结构''李老师''算法设计与分析''王老师''数据库系统概论''赵老师''数值分析'}
张老师
李老师
王老师
赵老师 

3.3 遍历所有的值

示例:遍历所有的值

teacher_course = {
    '张老师''数据结构',
    '李老师''算法设计与分析',
    '王老师''数据库系统概论',
    '赵老师''数值分析' }
print(teacher_course) for course in teacher_course.values():
    print(course) 

示例输出:

{'张老师''数据结构''李老师''算法设计与分析''王老师''数据库系统概论''赵老师''数值分析'}
数据结构
算法设计与分析
数据库系统概论
数值分析 

3.4 遍历时操作

在遍历字典的时候,还可以对字典进行相应操作后再进行遍历。

  • 可以排序后输出。即对键或者值进行排序后输出。
teacher_course = {
    'zhang''数据结构',
    'li''算法设计与分析',
    'wang''数据库系统概论',
    'zhao''数值分析' }
print(teacher_course) for teacher in sorted(teacher_course.keys()):
    print(teacher) 

示例输出:

{'zhang''数据结构''li''算法设计与分析''wang''数据库系统概论''zhao''数值分析'}
li
wang
zhang
zhao 
  • 可以去重后输出。即如果涉及到的数据量较多,而且有重复的选项,可以剔除重复项。集合(set) 类似于列表,但每个元素都必须是独一无二的:

示例:

teacher_course = {
    '张老师''数据结构',
    '李老师''算法设计与分析',
    '王老师''数据结构',
    '赵老师''数值分析' }
print(teacher_course) for course in set(teacher_course.values()):
    print(course) 

示例输出:

{'张老师''数据结构''李老师''算法设计与分析''王老师''数据结构''赵老师''数值分析'}
数据结构
数值分析
算法设计与分析 
  • 判断某个键或者值是否存在。

示例:

teacher_course = {
    '张老师''数据结构',
    '李老师''算法设计与分析',
    '王老师''数据结构',
    '赵老师''数值分析' }
print(teacher_course) if '数据库系统' not in teacher_course.keys():
    print('课程中没有数据库系统') if '王老师' not in teacher_course.keys():
    print('没有王老师') else:
    print('有王老师') 

示例输出:

{'张老师''数据结构''李老师''算法设计与分析''王老师''数据结构''赵老师''数值分析'}
课程中没有数据库系统
有王老师 

4. 嵌套

有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套 。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。

4.1 列表中存储字典

示例:

student_0 = {'name''张三''class''计算机1601'}
student_1 = {'name''李四''class''计算机1602'}
student_2 = {'name''王五''class''计算机1603'}
student_3 = {'name''赵六''class''计算机1604'}
students = [student_0, student_1, student_2, student_3]
print(students)
print(len(students)) for student in students:
    print(student) 

示例输出:

[{'name''张三''class''计算机1601'}, {'name''李四''class''计算机1602'}, {'name''王五''class''计算机1603'}, {'name''赵六''class''计算机1604'}]
4
{'name''张三''class''计算机1601'}
{'name''李四''class''计算机1602'}
{'name''王五''class''计算机1603'}
{'name''赵六''class''计算机1604'} 

4.2 字典中存储列表

示例:

school = {
    'name''武汉理工大学',
    'college': ['材料学院''化生学院''计算机学院']
}
print(school)
print(school['college']) for college in school['college']:
    print(college) 

示例输出:

{'name''武汉理工大学''college': ['材料学院''化生学院''计算机学院']}
['材料学院''化生学院''计算机学院']
材料学院
化生学院
计算机学院 

示例:

classes = {
    '计算机1601': ['张三''李四''王五'],
    '计算机1602': ['赵六''田七'],
    '计算机1603': ['孙八''周十一'],
    '计算机1604': ['吴十二''郑十三''冯宝宝']
} for the_class, student_names in classes.items():
    print(the_class + '的学生有:')
    for student_name in student_names:
        print('\t' + student_name) 

示例输出:

计算机1601的学生有:
    张三
    李四
    王五
计算机1602的学生有:
    赵六
    田七
计算机1603的学生有:
    孙八
    周十一
计算机1604的学生有:
    吴十二
    郑十三
    冯宝宝 

4.3 字典中存储字典

示例:

students = {
    '张三': {
        'no''1001',
        'phone''18763336333',
        'city''武汉市'     },
    '李四': {
        'no''1002',
        'phone''18812345678',
        'city''北京市'     },
    '王五': {
        'no''1003',
        'phone''18998765432',
        'city''南京市'     }
}
print(students) for name, info in students.items():
    print(name + '的信息如下:')
    print('\t学号为:' + info['no'] + ',手机号是:' + info['phone'] + ',居住在' + info['city']) 

示例输出:

{'张三': {'no''1001''phone''18763336333''city''武汉市'}, '李四': {'no''1002''phone''18812345678''city''北京市'}, '王五': {'no''1003''phone''18998765432''city''南京市'}}
张三的信息如下:
    学号为:1001,手机号是:18763336333,居住在武汉市
李四的信息如下:
    学号为:1002,手机号是:18812345678,居住在北京市
王五的信息如下:
    学号为:1003,手机号是:18998765432,居住在南京市 

参考文献:

[1] Python编程:从入门到实践

相关推荐

发表评论

路人甲
看不清楚?点图切换

网友评论(0)