字典介绍

想一想:

如果有列表

nameList = ['xiaoZhang', 'xiaoWang', 'xiaoLi'];

需要对"xiaoWang"这个名字写错了,通过代码修改:

nameList[1] = 'xiaoxiaoWang'

如果列表的顺序发生了变化,如下

nameList = ['xiaoWang', 'xiaoZhang', 'xiaoLi'];

此时就需要修改下标,才能完成名字的修改

nameList[0] = 'xiaoxiaoWang'

有没有方法,既能存储多个数据,还能在访问元素的很方便就能够定位到需要的那个元素呢?

答:

字典

另一个场景:

学生信息列表,每个学生信息包括学号、姓名、年龄等,如何从中找到某个学生的信息?

>>> studens = [[1001, "王宝强", 24], [1002, "马蓉", 23], [1005, "宋喆",24], ...]

循环遍历? No!

<1>生活中的字典

<2>软件开发中的字典

变量info为字典类型:

info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}

说明:

字典和列表一样,也能够存储多个数据

列表中找某个元素时,是根据下标进行的

字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'id'、'sex')

字典的每个元素由2部分组成,键:值。例如 'name':'班长' ,'name'为键,'班长'为值

<3>根据键访问值

info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}

print(info['name'])

print(info['address'])

结果:

班长

地球亚洲中国北京

若访问不存在的键,则会报错:

>>> info['age']

Traceback (most recent call last):

File "", line 1, in

KeyError: 'age'

在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值:

>>> age = info.get('age')

>>> age #'age'键不存在,所以age为None

>>> type(age)

>>> age = info.get('age', 18)

# 若info中不存在'age'这个键,就返回默认值18

>>> age

18

字典的常见操作1

<1>修改元素

字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改

demo:

info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}

newId = input('请输入新的学号')

info['id'] = int(newId)

print('修改之后的id为%d:'%info['id'])

<2>添加元素

demo:访问不存在的元素

info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}

print('id为:%d'%info['id'])

如果在使用 变量名['键'] = 数据 时,这个“键”在字典中,不存在,那么就会新增这个元素

demo:添加新的元素

info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}

# print('id为:%d'%info['id'])#程序会终端运行,因为访问了不存在的键

newId = input('请输入新的学号')

info['id'] = newId

print('添加之后的id为:%d'%info['id'])

结果:

请输入新的学号188

添加之后的id为: 188

<3>删除元素

对字典进行删除操作,有一下几种:

del

clear()

demo:del删除指定的元素

info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}

print('删除前,%s'%info['name'])

del info['name']

print('删除后,%s'%info['name'])

demo:del删除整个字典

info = {'name':'monitor', 'sex':'f', 'address':'China'}

print('删除前,%s'%info)

del info

print('删除后,%s'%info)

demo:clear清空整个字典

info = {'name':'monitor', 'sex':'f', 'address':'China'}

print('清空前,%s'%info)

info.clear()

print('清空后,%s'%info)

字典的常见操作2

<1>len()

测量字典中,键值对的个数

<2>keys

返回一个包含字典所有KEY的列表

<3>values

返回一个包含字典所有value的列表

<4>items

返回一个包含所有(键,值)元祖的列表

<5>has_key

dict.has_key(key)如果key在字典中,返回True,否则返回False

遍历

通过for ... in ...:的语法结构,我们可以遍历字符串、列表、元组、字典等数据结构。

注意python语法的缩进

字符串遍历

>>> a_str = "hello itcast">>> for char in a_str:...

print(char,end=' ')

...

h e l l o i t c a s t

列表遍历

>>> a_list = [1, 2, 3, 4, 5]>>> for num in a_list:...

print(num,end=' ')

...1 2 3 4 5

元组遍历

>>> a_turple = (1, 2, 3, 4, 5)>>> for num in a_turple:...

print(num,end=" ")1 2 3 4 5

字典遍历

<1> 遍历字典的key(键)

<2> 遍历字典的value(值)

<3> 遍历字典的项(元素)

<4> 遍历字典的key-value(键值对)

想一想,如何实现带下标索引的遍历

>>>chars = ['a', 'b', 'c', 'd']

>>>i = 0>>> for chr in chars:...

print("%d %s"%(i, chr))... i += 1...0 a1 b2 c3 d

enumerate()

>>>chars = ['a', 'b', 'c', 'd']

>>>for i, chr in enumerate(chars):...

print i, chr

...0 a1 b2 c3 d

原文链接:做最专业最懂你的编程微刊技术分享平台,提供你最需要的开发学习资源。 我们专注于编程开发技术的学习与交流,我们坚持,每天进步一小步,人生进步一大步!关注【编程微刊】,与我们一起学习进步。https://www.jianshu.com/u/05f416aefbe1

python使用字典描述学生信息_一起学Python:字典介绍相关推荐

  1. python字典输入学生信息_如何用Python将XML中的所有信息输入字典

    我通常使用标准库中的ElementTree模块解析XML. 它没有给你一个字典,你得到了一个更有用的DOM结构,它允许你为孩子们遍历每个元素.from xml.etree import Element ...

  2. python字典输入学生信息_用Python创建一个学生字典并可以查询其中信息

    展开全部 你可以试试这个---------------------------------------------------------- # -*- coding:UTF-8 -*- studen ...

  3. python小白应该看什么书_小白学python看什么书

    适合小白阅读的python入门书有 <Python编程 从入门到实战> 本书中涵盖的内容是比较精简的,没有艰深晦涩的概念,最重要的是每个小结都附带有"动手试一试"环节, ...

  4. python异或运算怎么算_小强学Python+OpenCV之-1.4.4掩膜mask及位运算(与、或、非、异或)...

    问题引入 在小强学Python+OpenCV之-1.4.2裁剪一节,我们使用的是numpy数组切片功能实现图片区域的裁剪. 那么,如果我们想要裁剪图像中任意形状的区域时,应该怎么办呢? 答案是,使用掩 ...

  5. python语言流程控制语句的格式_慢步学python,编程基础知识,流程控制语句if

    慢步业余学python编程,今天休息继续分享python编程知识. 面向过程编程,重要的是程序的流程,今天说说流程控制语句if. 在我们高中数学中就有流程图的学习,只是没有真正应用起来而已,办公软件也 ...

  6. python使用字典描述学生信息_Python字典(Dictionary)操作详解

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  7. python的read函数调用报错_从零开始学Python(七):文件存储I/O流和异常捕捉

    这两天在搞小程序开发,耽搁了一下更新的进度,今天补上.一个完整的前端程序肯定离不开数据存储和网络两个模块,今天我们就先来讲讲python中的一种常见数据存储:文件存储!~! 文件存储(I/O操作) 何 ...

  8. 用python做股票量化分析豆瓣_小白学 Python 爬虫(24):2019 豆瓣电影排行

    人生苦短,我用 Python 前文传送门: 引言 从本篇的标题各位同学应该已经猜到了,本篇又到了实战环节~~~ 2019 已经快过完了,按照本文推送的时间预估,到 2020 应该还有十来天的时间,又到 ...

  9. python在路径里添加变量_想学Python?那就先从头开始吧!

    作为人工智能和大数据时代最具竞争力的 Python 语言,越来越多的出现在各大编程热搜排行榜上. 首先你要了解什么是python 了解Python语言 Python是一种解释型, 面向对象, 动态数据 ...

最新文章

  1. 手把手教你如何制作可视化大屏!
  2. Objective-C 高性能的循环遍历 forin - NSEnumerator - 枚举 优化
  3. c语言变量为什么要定义,C语言为什么要规定对所用到的变量要“先定义,后使用”...
  4. 杭州某知名xxxx公司急招大量java以及大数据开发工程师
  5. c语言中输入字符用什么作用是什么意思,C语言编程问题
  6. WebFlux响应式编程基础之 4 reactive stream 响应式流
  7. VCL组件之公用对话框组件
  8. Proxmark3 Easy Gui 4.0 5.0 5.1加强版免费获取啦最新编译2019/5/10
  9. C#winform程序窗口全屏是否遮盖任务栏问题
  10. C#两种方法输出1~100间的质数(素数)
  11. 安卓入门教程(十五)- Fragment,Service,WAMP下载
  12. C#从文件读取 Stream
  13. 进销存软件商品报价管理-报价单
  14. 特征值和特征向量的理解
  15. 打造完美写作系统:Gitbook+Github Pages+Github Actions
  16. [连载]Java程序设计(02)---任务驱动方式:个人所得税计算器
  17. 网站服务器配置e5,从性能到配置 E5服务器全面扫描
  18. IDEA插件【美化插件】
  19. 使用GeoGebra来进行项目辅助开发
  20. 2000-2020逐年500m植被净初生产力NPP数据

热门文章

  1. 软件portable
  2. Spring Cloud 负载均衡
  3. 光引发剂主要用途_食品级uv油墨光引发剂的安全使用
  4. 800乘600的分辨率_600元能买到啥配置的手机?
  5. JavaSE----属性、方法
  6. java 心跳 断网重连_工作笔记5 - websocket心跳重连机制
  7. 2016版excel_憋了三年,整理出这些相见恨晚的Excel大神技巧,分分钟做出超赞Excel表格!...
  8. RedisTemplate清空所有键值对
  9. 第一篇:centos7下svn的安装与卸载
  10. 使用git上传项目到github