知行校园汇

记录学习、分享干货、吐槽人生!

关注

相关说明

  • 文章内容:Python数据类型之字典及其操作

  • 作者博客:csdn.cxhit.com www.cxhit.com

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    :计算机1601phone    :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': '数值分析'}liwangzhangzhao
  • 可以去重后输出。即如果涉及到的数据量较多,而且有重复的选项,可以剔除重复项。集合(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编程:从入门到实践

— The End —

推荐文章


  • WUT计算机科学与技术专业 课程总览

  • 基于微信公众号的早起签到程序的设计与实现

觉得有帮助,欢迎赞赏

字典添加数据_【Python基础学习】4. 数据类型之字典及其操作相关推荐

  1. python映射类型-python 基础学习 — 映射类型:字典

    一.字典: { } 字典是 Python 语言中唯一的映射类型.映射类型对象里哈希值(键) 和指向的对象(值)是一对多的关系. 二.创建字典 d1 = {'name': 'earth', 'port' ...

  2. sql查询百分之20到百分之40的数据_数据库基础学习——SQL语言知识总结(6)

    1 视图(View) 1.1什么是视图 可以通过创建表的视图来表现数据的逻辑子集或数据的组合.视图是基于表或另一个视图的逻辑表,一个视图并不包含它自己的数据,它象一个窗口,通过该窗口可以查看或改变表中 ...

  3. python基础学习_02数据类型+占位符+运算符+IF分支基础

    数据类型 Number: 数组, 整型 int, 浮点型[小数] float, 复数complex String: 字符串 Boolean: 布尔类型, 真 True ( 1 ), 假 False ( ...

  4. python | 基础学习(一)了解Bug、pycharm、变量、程序的三大流程(顺序、if、while)、运算符、快捷键

    文章目录 一.引言 1.python的起源 2.解释器 3.python的设计目标 4.python的特点 二.python 1.了解BUG 2.python的三种运行方式 ①解释器python/py ...

  5. 大数据第二阶段Python基础编程学习笔记(待完善)

    大数据第二阶段Python基础编程学习笔记(待完善) 第一章 Python基础语法 3.8 1-1Python概述 python基础部分: ●Python基础语法: 标识符,关键字,变量,判断循环.. ...

  6. python基础学习_转行零基础该如何学习python?很庆幸,三年前的我选对了

    这似乎是一个如荼如火的行业,对于一直在思考着转行的我,提供了一个不错的方向. 这个行业当然就是python程序员,真正开始决定转行是在24岁的时候,到现在已经有三年多了,我从零开始,每天用业余两个小时 ...

  7. 【Python基础学习】基本数据结构:列表、元组、栈、字典、集合与队列

    [Python基础学习]基本数据结构:列表.元组.栈.字典.集合与队列 Python的基本数据结构中,包含了列表.元组等一系列数组式数据结构,但各个结构各有不同.因此单独列出来,分析相同与不同 列表( ...

  8. Python基础学习之字典操作

    Python基础学习之字典操作 文章目录 Python基础学习之字典操作 1. 字典的创建 1.1 直接赋值法 1.2 关键字赋值法 1.3 列表转化法 1.4 元素增加法 1.5 元组转化法 1.6 ...

  9. python可以处理多大的数据_科多大数据之Python基础教程之Excel处理库openpyxl详解...

    原标题:科多大数据之Python基础教程之Excel处理库openpyxl详解 科多大数据小课堂来啦~Python基础教程之Excel处理库openpyxl详解 openpyxl是一个第三方库,可以处 ...

最新文章

  1. 微信小程序把玩(十九)radio组件
  2. 使用 Linux 系统调用的内核命令
  3. [转载] Java中Array(数组)转List(集合类)的几种方法
  4. 排序算法之----快速排序(快速上手快速排序)
  5. DrawPrimitiveUP And DrawIndexedPrimitiveUP
  6. AndroidStudio_gradle依赖相关错误的处理_Minimum supported Gradle version is 6.5. Current等---Android原生开发工作笔记228
  7. Dapper实用教程
  8. java面试jquery问题_20个最常见的jQuery面试问题及答案
  9. HTML设置半透明的背景,CSS设置半透明背景实例详解
  10. MATLAB图像去雾霭算法及其实现
  11. MySQL学生信息管理系统
  12. 高斯函数、高斯积分和正态分布
  13. 为什么我的背景图片加载不出来
  14. 1. 简明误差卡尔曼滤波器(ESKF)及其推导过程
  15. i7 12700H怎么样?相当于什么级别
  16. 几个不错的网站(仓库,资源)
  17. 尘埃粒子计数的价格以及使用注意事项
  18. Java设计模式方面的面试题大全
  19. 数字化转型写书笔记-第43天
  20. autocad2008中文版

热门文章

  1. allegro放置器件无法放_洗衣机放卫生间,这几种赶紧学起
  2. 谷歌AI掌门人Jeff Dean获冯诺依曼奖;微软计划自研PC和服务器芯片;Ruby 3.0 RC1发布|极客头条...
  3. Python自动化办公 | 补写178份Word日报!
  4. 5G换机前夕变局:海外停滞,靠中国市场救命?
  5. 微信小范围上线“分付”功能;罗永浩宣布独家签约抖音;Github pages 可能遭遇中间人攻击 | 极客头条...
  6. GitHub 一周热点速览:手撕 LeetCode 一日 Star 破两千
  7. 金三银四网络面经之 DNS 详解!
  8. 利用 Python 制作酷炫的飞船大战!|原力计划
  9. 华为证实 P40 将没有 Google 服务;李世石退役;Python 3.8.1 发布 | 极客头条
  10. 百度举办区块链论坛,携手多伙伴加速区块链产业落地