手机版
网站地图
美文美图
最新动态
你好,欢迎访问
好美文阅读网
个性皮肤
搜索
网站首页
美文
文章
散文
日记
诗歌
小说
故事
句子
作文
签名
祝福语
情书
范文
读后感
文学百科
美文摘抄
节日文章
名家散文
网名大全
座右铭
口号大全
面试技巧
说说大全
阅读答案
诗词默写
流言蜚语
节日祝福
好句子
经典台词
谚语大全
亲情故事
友情故事
表白情书
工作报告
活动总结
心得体会
专题汇总
美文网首页
第八章、列表与字典
第八章、列表与字典
作者:
聽風踏雪
| 来源:发表于
2017-05-16 18:17 被阅读0次
列表
列表是Python中最具灵活性的有序集合对象类型。
Python列表是:
任意对象的有序集合
通过偏移读取
可变长度、异构以及任意嵌套
属于可变序列的分类
对象引用数组
实际应用中的列表
1、基本列表操作:
由于列表是序列,它支持很多与字符串相同的操作。
2、列表迭代和解析:
3、索引、分片和矩阵:
由于列表都是序列,对于列表而言,索引和分片操作与字符串中的操作基本相同。
4、原处修改列表:
由于列表是可变的,他们支持原处改变列表对象的操作。
①、索引与分片的赋值:
当时用列表的时候,可以将它赋值给一个特定项(偏移)或整个片段(分片)来改变它的内容。
索引和分片的赋值都是原地修改,它们对列表进行直接修改,而不是生成一个新的列表作为结果。
②、列表方法调用:
列表方法append:简单地将一个单项(对象引用)加至列表末端。
列表方法sort:原地对列表进行排序。
列表方法reverse:可原地反转列表。
列表方法extend:能够在末端插入多个元素。
列表方法pop:能够在末端删除一个元素。
列表方法remove:通过值删除某元素。
列表方法insert:在偏移处插入某元素。
列表方法index:查找某元素的偏移。
内置函数sorted和reversed作用同上。
③、其他常见列表操作:
1、由于列表是可变的,你可以用del语句在原处删除某项或某片段。
2、因为分片赋值是删除外加插入操作,也可以通过将空列表赋值给分片来删除列表片段(L[i:j]=[])。
字典
除了列表以外,字典(dictionary)也许是Python之中最灵活的内置数据结构类型。如果把列表看做是有序的对象集合,那么就可以把字典当成是无序的集合。
python字典的主要属性如下:
①、通过键而不是偏移量来读取:
②、任意对象的无序集合:
③、可变长、异构、任意嵌套:
④、属于可变映射类型:
⑤、对象引用表(散列表):
实际应用中的字典
字典通过键进行索引,被嵌套的字典项是由一系列索引(方括号中的键)表示的。
1、字典的基本操作:
内置len函数也可用于字典,它能够返回存储在字典里的元素的数目,或者说是其keys列表的长度,这二者是等价的。
字典的has_key方法以及in成员关系操作符提供了键存在与否的测试方法,keys方法则能够返回字典中所有的键,将它们收集在一个列表中。
2、原处修改字典:
与列表相同,字典也是可变的,因此可以在原处对它们进行修改、扩展以及缩短而不需要生成新字典。
del语句在这里也适用。它删除作为索引的键相关联的元素。
3、其他字典方法:
字典方法提供了多种工具。例如,字典values和items方法分别返回字典的值列表和(key,value)对元组。
读取不存在的键往往都会出错,然而键不存在时通过get方法能够返回默认值(None或者用户定义的默认值)。
字典的update帆帆有点类似于合并,但是,它和从左到右的顺序无关。它把2一个字典的键和值合并到另一个字典中,盲目地覆盖相同的键值。
字典的pop方法能够从字典中删除一个键并返回它的值。
4、语言表:
就任何字典D而言,写成for key in D:和写成完整的key in D.keys():效果是一样的。
5、字典用法的注意事项:
·序列运算无效。
·对新索引赋值会添加项。
·键不一定总是字符串。
①、使用字典模拟灵活的列表:
②、字典用于稀疏数据结构:
③、避免missing-key错误:
④、使用字典作为记录:
6、创建字典的其他方法:
①、{'name':'mel','age':45}
②、D={} D['name']='mel D['age']=45
③、dict(name='mel',age=45)
④、dict([('name','mel'),('age',45)])
这四种形式都会建立相同的两键字典,但它们在不同的条件下有用:
①、如果你可以事先拼出整个字典,那么第一种是很方便的。
②、如果你需要一次动态地建立字典的一个字段,第二种比较合适。
③、第三种关键字形式所需的代码比常量少,但是键必须都是字符串才行。
④、如果你需要在程序运行时把键和值逐步建成序列,那么最后一种形式比较有用。
如果所有键的值都相同,你也可以用这个特殊的形式对字典进行初始化——简单地传入一个键列表,以及所有键的初始值(默认值为空):
>>>dict.fromkeys(['a','b'],0)
7、Python3.0中字典的变化:
①、支持一种新的字典解析表达式,这是列表和集合解析的“近亲”。
②、对于D.key、D.values和D.items方法,返回可迭代的视图,而不是列表。
③、由于前一点,需要新的编码方式通过排序键来遍历。
④、不再直接支持相对大小比较——取而代之的是手动比较。
⑤、不再有D.has_key方法——相反,使用in成员关系测试。
在Python3.0中的字典有什么新特性:
①、字典解析:
Python3.0中的字典可以用字典解析来创建。如下代码使用对应结果中的每一个键/值对构建了一个新的字典:
>>>D={k:v for (k,v) in zip(['a','b','c'],[1,2,3])}
②、字典视图:
在Python3.0中,字典的keys、values和items都返回视图对象,而Python2.6中,它们返回实际的结果列表。
Python3.0中的字典视图并非创建后不能改变——它们可以动态地反映在视图对象创建之后对字典做出的修改。
③、字典视图和集合:
与Python2.X中的列表结果不同,keys方法所返回的Python3.0的视图对象类似于集合,并且支持交集和并集等常见的集合操作;values视图不是这样的,因为它们不是唯一的;但items结果是的,如果(key,value)对是唯一的并且可散列的话。
④、排序字典键:
由于keys不会返回一个列表,必须要么手动地转换为一个列表,要么在一个键视图或字典自身上使用sorted调用。
⑤、字典大小比较不再有效:
尽管在Python2.6中可以直接用<、>等比较字典的相对大小,但在Python3.0中这不再有效。然而,可以通过手动地比较排序后的键列表来模拟。
Python3.0中字典相等性测试仍然有效。
⑥、has_key方法已死:in永生:
广为使用的字典has_key键存在测试方法在Python3.0中取消了。相反,使用in成员关系表达式,或者带有默认测试的一个get(其中,in通常是首选的)。
本章小结:
本章我们探讨了列表和字典类型——这可能是在Python程序中所见到并使用的两种最常见、最具有灵活性而且功能最为强大的集合体类型。本章介绍了列表类型支持任意对象的以位置排序的集合体,而且可以任意嵌套,按需要增长和缩短。字典类型也是如此,不过它是以键来存储元素而不是位置,并且不会保持元素之间任何可靠的由左至右的顺序。列表和字典都是可变的,所以它们支持各种不适用于字符串的原处修改操作。例如,列表可以通过append调用来进行增长,而字典则是通过赋值给新键的方法来实现。
相关文章
网友评论
本文标题:
第八章、列表与字典
本文链接:
https://www.haomeiwen.com/subject/metbtxtx.html
延伸阅读
那年盛夏诗歌
环境监察队工作总结范文
优秀教师学习心得范文
华胥引的读后感300字
《Its red》教学反思范文
农资购销的合同范本
竞选中队委优秀演讲稿
辞金蹈海的成语解释
《世纪宝鼎》公开课教案设计
因为爱你,所以牵挂
今生今世红尘醉——美到
一个90后的内心独白
致已逝去的高中年华
深度阅读
您也可以注册成为美文阅读网的作者,发表您的原创作品、分享您的心情!
情人节
母亲节
重阳节
清明节
端午节
植树节
元宵节
妇女节
愚人节
圣诞节
父亲节
教师节
儿童节
劳动节
青年节
建军节
万圣节
平安夜
光棍节
中秋节
国庆节
感恩节
腊八节
更多话题
栏目导航
摄影
故事
互联网
读书
旅行
热点阅读
保险销售快速开发缘故话术
一个人
伦理片
陷入单恋的少年
虚拟海外仓是什么?
疯狂学习法触类旁通的想法
电话销售技巧:做销售不可说的八句话,超过4条必完蛋,切记!
我以为是long long ago,其实只是几天前的事
琅琊令之快意恩仇|无念
危险报警
网友评论