列表

列表是Python中最具灵活性的有序集合对象类型。与字符串不同的是,列表可以包含任何类型的对象:数字、字符串甚至其他列表。列表是可变对象,它支持原地修改的操作。

Python的列表是:

任意对象的有序集合

通过偏移读取

可变长度、异构以及任意嵌套

属于可变序列的分类

对象引用数组(列表中的存储的是对象的引用,而不是对象的拷贝)

实际应用中的列表

>>基本列表操作

由于列表是序列,它支持很多与字符串相同的操作。列表对”+”和”*“操作的响应与字符串很相似,两个操作的意思也是合并和重复,只不过是一个新的列表,而不是一个字符串。

>>索引、分片和矩阵

对于列表而言,索引和分片操作与字符串中的操作基本相同。然而对列表进行索引的结果就是你指定的偏移处的对象(不管是什么类型),而对列表分片时往往返回一个新的列表。

matrix = [[1,2,3],[4,5,6],[7,8,9]]

上述代码定义了一个3*3的二维矩阵。

>>原处修改列表

索引与分片的赋值

当使用列表的时候,可以将它赋值给一个特定项(偏移)或整个片段(分片)来改变它的内容,索引和分片的赋值都是原地修改,它们对列表进行直接修改,而不是生成一个新的列表作为结果.Python中的索引赋值与C及大多数其他语言极为相似——Python用一个新值取代指定偏移的对象引用

列表方法的调用

最常用的列表方法是append,它能够简单地将一个单项(对象引用)加至列表末端。与合并不同的是,append允许传入单一对象而不是列表。L.append(X)与L+[X]的结果类似,不同的是,前者会原地修改L,而后者会生成新的列表。 另一个比较常用的方法就是sort,它原地对列表进行排序。sort是使用Python标准的比较检验作为默认值(在这里指字符串比较),而且以递增的顺序进行排序。另外,我们可以通过传入一个关键字参数来修改排序行为——这是指定按名称传递的函数调用中特殊的”name=value”语言。

需要注意的是:要当心append和sort是原地修改列表对象的,方法的返回结果并没有返回列表(从技术上讲,两者的返回值都是None)。如果编写类似L=L.append(X)的语句,将不会得到修改后的值(实际上,会失去整个列表的引用)。

reverse:原地反转列表

extend:在末端插入多个元素

pop:删除最后一个元素,同时返回被删除的值

remove:通过值删除某个元素

insert:在偏移处插入某个元素

index:查找某元素的偏移

字典

如果把列表看做是有序的对象集合,那么就可以把字典当成是无序的集合,它们主要的差别就在于:字典当中的元素师通过键来存取的,而不是通过偏移存取。 Python字典的主要属性如下:

通过键而不是偏移来读取

任意对象的无序集合

可变长、异构、任意嵌套

属于可变映射类型

对象引用表(散列表)(字典中的存储的是对象的引用,而不是对象的拷贝)

实际应用中的字典

>>原处修改字典

与列表相同,向字典中已存在的索引值赋值会改变与索引相关联的值。然而,与列表不同的是,每当对新字典键进行赋值(之前没有被赋值的键),就会在字典内生成一个新的元素。

>>其他字典的方法

keys:返回字典的键列表

values:返回字典的值列表

items:返回字典的(key,value)对元组

update:合并

pop:从字典中删除一个键并返回它的值

>>字典用法注意事项

序列运算无效

对新索引赋值会添加项

键不一定总是字符串

>>创建字典的其他方法

#Method1

D = {'name':'mel','age':45}

#Method2

D = {}

D['name']='mel'

D['age']=45

#Method3

D = dict(name='mel',age=45)

#Method4

D = dict([('name','mel'),('age',45)])

以上四种形式都会建立相同的字典。

>>Python3.0中的字典变化

字典的功能在Python3.0中已经有所变化了,具体来说,Python3.0中的字典:

支持一种新的字典解析表达式,这是列表和集合解析的”近亲”

对于D.key,D.values和D.items方法,返回可迭代的视图,而不是列表

由于前面一点,需要新的编码方式通过排序键来遍历

不再直接支持相对大小比较——取而代之的是手动比较

不再有D.has_key方法——相反,使用in成员关系测试

字典视图

在Python3.0中,字典的keys、values和items都返回视图对象,而在Python2.6中,它们返回实际的结果列表。Python3.0中的字典视图并非创建后不能改变,它们可以动态地反映在视图对象创建之后对字典做出点修改:

D={'a':1,'b':2,'c':3}

K = D.keys()

V = D.values()

del D['b']

list(K)

上述代码中,最后一行的结果是[‘a','c']。

keys方法所返回的对象类似于集合,并且支持交集和并集等常见的操作;values视图不是这样,因为它们不是唯一的;但items结果是的,如果(key,value)对是唯一的并且可散列的话。

元组

元组由简单的对象构成。元组与列表非常类似,只不过元组不能再原处修改(它们是不可变的),通常是写成圆括号(而不是方括号)中一系列项。它的属性有:

任意对象的有序集合

通过偏移存取

属于不可变序列类型

固定长度、异构、任意嵌套

对象引用的数组

>>实际应用中的元组

元组的特殊语法:逗号和圆括号

因为圆括号也可以把表达式括起来,如果圆括号里的单一对象时元组对象而不是一个简单的表达式,需要对Python进行特别说明。如果确实想得到一个元组,只要在这一单个元素之后、关闭圆括号之前加上一个逗号就可以了。

x = (40)

y = (40,)

上述代码中,第一行的x是一个整数,第二行的y则是一个包含了一个元素40的元组。

转换、方法以及不可变性

元组的操作和字符串及列表是一致的,值得注意的区别在于”+”、”*“以及分片操作应用于元组时将返回新元组,并且元组不提供字符串、列表和字典中的方法。

>>为什么有了列表还要元组

元组的不可变性提供了某种完整性,这样你可以确保元组在程序中不会被另一个引用修改,而列表就没有这样的保证了。

python读取字典元素笔记_Python中列表、字典、元组数据结构的简单学习笔记相关推荐

  1. python列表方法语句_Python中列表和元组的相关语句和方法讲解

    列表(list): 首先,列表属于序列,那么序列类型可用如下内建函数-- list(iter):把可迭代对象转换为列表. str(obj):把obj对象转换为字符串,即用字符串来表示这个对象. tup ...

  2. python中的列表和元组_python中列表和元组的区别

    如果有了解过python中的列表和元组,你可能会知道相对于列表,元组是不可变的,也就是说元组中的数据不能随意更改.除了列表是用中括号表示而元组是用小括号表示之外,这两种数据类型好像并没有什么不同,都是 ...

  3. python乘法函数_Python中列表与元组的乘法操作示例

    本文实例讲述了Python中列表与元组的乘法操作.分享给大家供大家参考,具体如下: 直接上code吧,还可以这么玩儿 列表乘法: li=[1,] li=li*3 print(li) out: [1, ...

  4. python建立字典的程序_python中的字典

    字典:一个关联数组或散列表 ,可通过关键字索引的对象. 字典的用途:定义一个可包含多个命名字段的对象,也可以用作快速查找无序数据的容器 字典是python中最完善的数据类型 在程序中最常用于存储和处理 ...

  5. python字典应用实例_Python中的字典应用实例

    字典中的键使用时必须满足一下两个条件: 1.每个键只能对应一个项,也就是说,一键对应多个值时不允许的(列表.元组和其他字典的容器对象除外).当有键发生冲突时(即字典键重复赋值),取最后的赋值. > ...

  6. [转载] python字典查询功能_Python中的字典功能

    参考链接: Python中的字典dictionary方法 (cmp(), len(), items()-) python字典查询功能 Let's check out some important fu ...

  7. python的含义和用法_python中列表的含义及用法

    示例 列表是元素的集合,存储在一个变量中.列表中存储的元素类型没有限制,下面是列表的一个简单例子. students = ['bernice', 'arron', 'cody'] for studen ...

  8. python中字典的使用_python中的字典用法大全

    本文包含了python字典的各种用法,字典在python中的重要性不言而喻 #!/usr/bin/env python # # [代码名字: Dictionaries 101] # [代码分类: Py ...

  9. python集合和字典的区别_Python中的字典和集合

    导语:本文章记录了本人在学习Python基础之数据结构篇的重点知识及个人心得,打算入门Python的朋友们可以来一起学习并交流. 本文重点: 1.掌握常见的字典创建,查询,判别方法: 2.了解字典中的 ...

最新文章

  1. 2010.12.14 关于decimal和Numeric类型
  2. ASP.NET MVC应用程序实现下载功能
  3. R7-7 寻找大富翁 (25 分)
  4. ASP.NET Boilerplate Zero启动方式
  5. Matlab 读取 gprmax 的 out 文件详细解释
  6. SpringCloud学习(五)路由网关(zuul)(Finchley版本)
  7. 驱动人生安装win11苹果/Windows系统教程
  8. android 9坚果r1,坚果R1、小米MIX2S、一加6对比评测 骁龙845旗舰怎么选?
  9. MATLAB图像去雾算法RETINEX实现
  10. Android实现 Eq的频响曲线,可以调节峰值,高低通。曲线为算法实现。
  11. 基于Hadoop豆瓣电影数据分析(综合实验)
  12. php spry文本域_spry菜单栏(二)
  13. 网站推广方法之快捷网址推广方法
  14. 【市场点评】沪深基指终强势反弹 终结六连阴走势
  15. windows下PHP截取视频第一帧
  16. HTML相对路径--上级目录及下级目录的写法
  17. SuperMap 地图概念盘点
  18. 个人网站如何取消(注销)备案信息?
  19. JS高级-分享一个别踩白块的小游戏(源码)
  20. C#winform小demo-串口传输实现硬件数据回传(SerialPort类使用)

热门文章

  1. CSU 1328 近似回文词【最长回文字符串(三种方法)】
  2. AWS EC2 Root密码重置
  3. 【Python数据分析】四级成绩分布 -matplotlib,xlrd 应用
  4. python之初体验(一)
  5. 高效CSS的一些建议
  6. 怎样为Linux内核打补丁
  7. VIBE复现过程,使用nvidia和libOpenGL.so渲染出错及解决方案
  8. 英伟达jetson TX1的caffe-ssd配置
  9. [云炬创业学笔记]第一章创业是什么测试14
  10. [云炬创业学笔记]第一章创业是什么测试4