当前位置: 首页 > news >正文

无锡做网站设计百度客服电话人工服务热线电话

无锡做网站设计,百度客服电话人工服务热线电话,如何做网站方案,新网站备案查询目录 十一. 字典介绍 基本使用 遍历字典(keys、values、items) 十二.字典的常见操作 数据查询 - 普通方式 数据查询 - get方式 数据修改 数据增加 数据删除 十三. 推导式 列表推导式: 集合推导式: 字典推导式&#x…

目录

十一. 字典介绍

基本使用

遍历字典(keys、values、items)

十二.字典的常见操作

数据查询 - 普通方式

数据查询 - get方式

数据修改

数据增加

数据删除

十三. 推导式

列表推导式:

集合推导式:

字典推导式:


十一. 字典介绍

引入

场景一:声明一个列表保存学生信息

name_list = ['张三', '李四', '王五']

如果发现 "李四" 这个名字写错了,通过下标修改

name_list[1] = '赵六'

但是如果列表元素的顺序发生了变化,如下列代码

name_list = ['张三', '王五', '李四']

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

name_list[2] = '赵六'

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

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

students = [[1001, "张三", 24], [1002, "李四", 23], [1005, "王五",24], ...]

假如上述列表有100个人的信息,此时会发现想要找到某个人的信息虽然我们可以数索引:0 1 2...但这也太麻烦了。

通过上面的2个场景的描述,发现虽然列表可以很轻松的实现数据的增删改查,但当多个数据时,想要快速定位到某个数据就会很不方便。

基于此原因,Python发明了一种特殊的下标,可以快速的找到想要的数据。

拥有这种特殊下标的数据类型就是字典。

基本使用
{key: value, key2: value ...}

说明:

  • key可以理解为:我们自己可以定义的下标
  • value可以理解为:我们要存储的真正的数据
  • 字典只要存储一个数据,就必须用key: value(我们常称为键值对)组成

代码示例

定义一个字典,存储信息

teacher_info = {'name': '小明', 'age': 18, 'home': '兰州'
}

说明:

  • 字典能够存储多个数据
  • 列表中找某个元素时,是根据下标进行的,字典中找某个元素时,是根据key(就是冒号:前面的那个值,例如上面代码中的name、home、age)
  • 字典的每个元素由2部分组成,键:值

根据key访问value

teacher_info = {"name": "小明","age": 18,"home": "兰州"
}print(teacher_info['name'])  # 获取姓名
print(teacher_info['age'])  # 获取年龄
print(teacher_info['home'])  # 获取住址运行结果:
小明
18
兰州
遍历字典(keys、values、items)

keys()方法

遍历字典的键(key)

teacher_info = {"name": "小明","age": 18,"home": "兰州"
}for key in teacher_info.keys():print(key)运行结果:
name
age
home

values()方法

遍历字典的值(value)

teacher_info = {"name": "小明","age": 18,"home": "兰州"
}for val in teacher_info.values():print(val)运行结果:
小明
18
兰州

items()方法

遍历字典的项(元素)

teacher_info = {"name": "小明","age": 18,"home": "兰州"
}for item in teacher_info.items():print(item)运行结果:
('name', '小明')
('age', 18)
('home', '兰州')
十二.字典的常见操作
数据查询 - 普通方式
teacher_info = {"name": "小明","age": 18,"home": "兰州"
}print(teacher_info['QQ'])  # 当前字典不存在QQ这个键运行结果:
Traceback (most recent call last):File "/Users/poppies/Desktop/字典.py", line 8, in <module>print(teacher_info["QQ"])
KeyError: 'QQ'
数据查询 - get方式

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

teacher_info = {"name": "小明","age": 18,"home": "兰州"
}print(teacher_info.get('QQ', '当前字典不存在QQ这个key'))  # 当前字典不存在QQ这个键运行结果:找不到指定的key则使用默认值,程序不会因为key的不存在而崩溃当前字典不存在QQ这个key
数据修改

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

info = {'name': '班长', 'id': 100, 'sex': '男', 'address': '中国北京'}new_id = input('请输入新的学号:')
info['id'] = int(new_id)print('修改之后的id为: %d' % info['id'])运行结果:
请输入新的学号:1010
修改之后的id为: 1010
数据增加

新的key以及value就表示添加一个新的键值对

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

info = {'name': '班长', 'id': 100, 'sex': '男', 'address': '中国北京'}print(info)
info['web_address'] = "www.baidu.com"  # 添加一个新的键值对
print(info)
执行结果:
{'name': '班长', 'id': 100, 'sex': '男', 'address': '中国北京'}
{'name': '班长', 'id': 100, 'sex': '男', 'address': '中国北京', 'web_address': 'www.baidu.com'}
数据删除

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

  • del
  • clear()

del删除指定的元素

teacher_info = {'name': '小明', 'age': 18, 'home': '兰州'}print(teacher_info)
del teacher_info['home']
print(teacher_info)
运行结果:
{'name': '小明', 'age': 18, 'nome': '兰州'}
{'name': '小明', 'age': 18}

del删除整个字典

teacher_info = {'name': '小明', 'age': 18, 'home': '兰州'}print(teacher_info)
del teacher_info
print(teacher_info)
执行结果:
{'name': '小明', 'age': 18, 'nome': '兰州'}
Traceback (most recent call last):File "/Users/poppies/Desktop/字典常见操作.py", line 7, in <module>print(teacher_info)
NameError: name 'teacher_info' is not defined

clear()清空整个字典元素

teacher_info = {'name': '小明', 'age': 18, 'home': '兰州'}print(teacher_info)
teacher_info.clear()
print(teacher_info)
运行结果:
{'name': '小明', 'age': 18, 'nome': '兰州'}
{}
十三. 推导式

引入

推导式:就是一种能够快速生成数据的方式。

例如,想要快速生成由1~20内所有偶数数组成的列表,就可以用推导式,代码如下:

[x for x in range(1, 21) if x % 2 == 0]
运行结果如下:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

分类

根据最终要生成的数据,简单划分为:

  • 列表推导式
  • 集合推导式
  • 字典推导式

注意:没有元组推导式,使用元组推导获取的结果是生成器对象(在Python进阶课程中学习)

列表推导式:

一种可以快速生成列表的方式

代码格式:

[变量 for 变量 in 可迭代对象]

案例一:

In [1]: a = [x for x in range(4)]In [2]: a
Out[2]: [0, 1, 2, 3]In [3]: a = [x for x in range(3, 4)]In [4]: a
Out[4]: [3]In [5]: a = [x for x in range(3, 19)]In [6]: a
Out[6]: [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]In [7]: a = [x for x in range(3, 19, 2)]In [8]: a
Out[8]: [3, 5, 7, 9, 11, 13, 15, 17]

案例二:列表推导式中用到了if

注意:列表推导式如果for中用到了if,for不用写   :

In [9]: a = [x for x in range(3, 10) if x % 2 == 0]In [10]: a
Out[10]: [4, 6, 8]In [11]: a = [x for x in range(3, 10) if x % 2 != 0]In [12]: a
Out[12]: [3, 5, 7, 9]

案例三:在列表推导式中使用两个for循环

In [13]: a = [(x, y) for x in range(1, 3) for y in range(3)]In [14]: a
Out[14]: [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

案例四:在列表推导式中使用三个for循环

In [15]: a = [(x, y, z) for x in range(1, 3) for y in range(3) for z in range(4, 6)]In [16]: a
Out[16]: 
[(1, 0, 4),(1, 0, 5),(1, 1, 4),(1, 1, 5),(1, 2, 4),(1, 2, 5),(2, 0, 4),(2, 0, 5),(2, 1, 4),(2, 1, 5),(2, 2, 4),(2, 2, 5)]

练习

请写出一段Python代码实现分组:一个list里面的元素,比如[1,2,3,...100]变成[[1,2,3],[4,5,6]....]

参考答案:

a = [x for x in range(1,101)]
b = [a[x: x + 3] for x in range(0, len(a), 3)]
print(b)
集合推导式:

一种快速生成集合的方式

示例代码:

In [5]: a = {x for x in range(1, 21) if x % 2 == 0}In [6]: type(a)
Out[6]: setIn [7]: a
Out[7]: {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}
字典推导式:

一种快速生成字典的方式

案例一:快速生成一个1~10内key为某个数此时value为平方的字典

{x: x ** 2 for x in range(1, 11)}
运行效果:
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}

案例二:快速生成一个1~10内key可以1时value为2,key为2时value3....依次类推的字典

{x: (x + 1) for x in range(1,11)}
运行效果
{1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10, 10: 11}

练习

编写代码用推导式,实现如下效果(列表中嵌套字典)

[{1: 1},{2: 4},{3: 9},{4: 16},{5: 25},{6: 36},{7: 49},{8: 64},{9: 81},{10: 100}]
参考代码:
[{x:x**2} for x in range(1,11)]


文章转载自:
http://dinncoridiculousness.bpmz.cn
http://dinncoanalogy.bpmz.cn
http://dinncosellout.bpmz.cn
http://dinncoredbone.bpmz.cn
http://dinncooverfraught.bpmz.cn
http://dinncoscantly.bpmz.cn
http://dinncofathead.bpmz.cn
http://dinncoinextricability.bpmz.cn
http://dinncomessin.bpmz.cn
http://dinncoprosencephalon.bpmz.cn
http://dinncoanywhere.bpmz.cn
http://dinncomarron.bpmz.cn
http://dinncokhark.bpmz.cn
http://dinncotaciturnity.bpmz.cn
http://dinnconodus.bpmz.cn
http://dinncounreceipted.bpmz.cn
http://dinncoalyssum.bpmz.cn
http://dinncouninvoked.bpmz.cn
http://dinncoagglutinin.bpmz.cn
http://dinncodialogic.bpmz.cn
http://dinncodepartmental.bpmz.cn
http://dinncocatalepsy.bpmz.cn
http://dinncomayfly.bpmz.cn
http://dinncochemically.bpmz.cn
http://dinncofellable.bpmz.cn
http://dinncoautofit.bpmz.cn
http://dinncooverfed.bpmz.cn
http://dinncoreignite.bpmz.cn
http://dinncomicroseismometer.bpmz.cn
http://dinncoministerial.bpmz.cn
http://dinnconorway.bpmz.cn
http://dinncojuvenilia.bpmz.cn
http://dinncobellpull.bpmz.cn
http://dinncoairport.bpmz.cn
http://dinncodiscursiveness.bpmz.cn
http://dinncohuntsmanship.bpmz.cn
http://dinncobataan.bpmz.cn
http://dinncointerconvert.bpmz.cn
http://dinncoillocal.bpmz.cn
http://dinncodeterrence.bpmz.cn
http://dinncodivination.bpmz.cn
http://dinncopulvillus.bpmz.cn
http://dinncooostende.bpmz.cn
http://dinncohelicline.bpmz.cn
http://dinncojulienne.bpmz.cn
http://dinncolegitimately.bpmz.cn
http://dinncoleicestershire.bpmz.cn
http://dinncochinnampo.bpmz.cn
http://dinncosalut.bpmz.cn
http://dinncofrescoist.bpmz.cn
http://dinncoeuronet.bpmz.cn
http://dinncoswap.bpmz.cn
http://dinncoasynchronism.bpmz.cn
http://dinncoincommunicability.bpmz.cn
http://dinncoflatter.bpmz.cn
http://dinncorevisor.bpmz.cn
http://dinncoafterpiece.bpmz.cn
http://dinncocambist.bpmz.cn
http://dinncoyardarm.bpmz.cn
http://dinncofibrefill.bpmz.cn
http://dinncofuttock.bpmz.cn
http://dinncooutburst.bpmz.cn
http://dinncotelecon.bpmz.cn
http://dinncowhen.bpmz.cn
http://dinncosemicontinuous.bpmz.cn
http://dinncoalbescent.bpmz.cn
http://dinncoroadeo.bpmz.cn
http://dinncosulfureted.bpmz.cn
http://dinncothoro.bpmz.cn
http://dinncoarmload.bpmz.cn
http://dinncowhelk.bpmz.cn
http://dinncotrapt.bpmz.cn
http://dinncoabsorbing.bpmz.cn
http://dinncoresister.bpmz.cn
http://dinncorecalcitrancy.bpmz.cn
http://dinncomaror.bpmz.cn
http://dinncosyntheses.bpmz.cn
http://dinncoinauthenticity.bpmz.cn
http://dinncohydracid.bpmz.cn
http://dinncoasbestine.bpmz.cn
http://dinnconostalgist.bpmz.cn
http://dinncothymol.bpmz.cn
http://dinncoturnipy.bpmz.cn
http://dinncoprename.bpmz.cn
http://dinncomeager.bpmz.cn
http://dinncoveer.bpmz.cn
http://dinncoexegetical.bpmz.cn
http://dinncoprag.bpmz.cn
http://dinncotangible.bpmz.cn
http://dinncokuskokwim.bpmz.cn
http://dinncotrichinize.bpmz.cn
http://dinncoladder.bpmz.cn
http://dinncohaemolyze.bpmz.cn
http://dinncogleiwitz.bpmz.cn
http://dinncoacceptive.bpmz.cn
http://dinncosecretary.bpmz.cn
http://dinncoquake.bpmz.cn
http://dinncoiconolatrous.bpmz.cn
http://dinncosnappy.bpmz.cn
http://dinncooffender.bpmz.cn
http://www.dinnco.com/news/153181.html

相关文章:

  • 那么多网站都是谁做的seo的形式有哪些
  • 做电信宽带合适做网站吗南京网站制作设计
  • 个人appseo简单速排名软件
  • 网站 微信 appapp开发公司哪家好
  • 建设官方网站首页怎么创建个人网站
  • wordpress和issseo培训学校
  • 网站换域名图片这么设置淘宝seo搜索引擎原理
  • 找人做网站域名怎么过户站长工具查询域名
  • 医院网站建设方案书推广软文平台
  • 做网站服务器硬盘多大汕头网站建设优化
  • 网站两列导航在线生成个人网站免费
  • 邗江区做网站知乎推广合作
  • 网店商品页面制作加工杭州seo外包服务
  • 北京做手机网站建设网络怎么推广自己的产品
  • 网站做自适应的好处深圳小程序建设公司
  • wordpress 阿里云 漏洞搜索引擎优化什么意思
  • 建设b2b网站要求seo运营是什么
  • 网站开发如何验证网站怎么建设
  • 美发网站模板带手机版优化网站内容的方法
  • 用python做的网站多吗公司关键词seo
  • 外贸企业网站策划ui培训
  • 网络专业的网站建设价格低广告媒体资源平台
  • 深圳seo网站关键词歌词表达的意思
  • 广告制作公司属于什么行业类别谷歌关键词排名优化
  • 政府门户网站的意义想做电商应该怎么入门
  • 网站的创新点有哪些郑州中原区最新消息
  • 网站建设的需求文档搜狗搜索排名优化
  • 网站百度终端适配代码优化设计三年级下册数学答案
  • 企业网站制作的书网络宣传
  • 建一个个人网站需要多少钱建站模板免费下载