第二章 列表和元组
来源:互联网 发布:访客网络的区别 编辑:程序博客网 时间:2024/06/07 19:27
第二章
1.列表
python中最基本的数据结构是序列,序列中的每个元素被分配一个序号——即元素的位置
python中包含6种內建的序列:列表,元组,字符串,Unicode字符串,buffer对象,xrange对象
列表可以修改,元组不能
一般情况下,列表都可以代替元组(当使用元组做字典的键时,因为键不可以修改,所以不能使用元组)
2.1
列表元素的类型可以不相同:例如可以用列表表示数据库中一个人的信息——第一个元素是姓名,第二个元素是年龄
>>>Edward=['Edward Gumby',42]
同时,序列也可以包含其他的序列,
>>>Edward=['Edward Gumby',42]>>> john=['john Simth',50]>>>database=[john,Edward]
注意:python中还有一种名为容器的数据结构。容器基本上包含其他对象的任意对象。序列(例如列表和元组)和映射(例如字典)是两类主要的容器。序列中的每个元素都有自己的编号,而映射中的每个元素则有一个自己的名字 (也称为键)。此外还有集合也是容器类型。
2.2通用序列操作
所有的序列类型都可以进行某些特定的操作:索引、分片、加、乘以及检查某个元素是否属于序列的成员。python中有计算序列长度、找出最大和最小元素的內建函数。
迭代:依次对序列的每个元素重复执行某些操作。
2.2.1 索引
序列中的所有元素都是有编号的—从0开始递增。这些元素可以通过编号分别访问
>>>greeting='Hello'>>>greeting[0]
索引0指向第一个元素,这就是索引。通过索引获取元素。
使用负数索引时,Python会从右边,也就是从最后一个元素开始计数。最后一个元素的位置编号是 -1.
字符串能够直接使用索引,而不需要一个变量引用它们。两种做法的效果是一样的:
>>>'hello'[1]>'e'如果一个函数调用返回一个序列,那么可以直接对返回结果进行索引操作。例如:>>>fourth=raw_input('Year:')[3]Year=2005>>>fourth'5'
2.2.2 分片
>>>tag='<a href="http://www.python.org">Python web site</a>'>tag[9:30]
第一个索引是需要提取部分的第一个元素的编号,最后的索引则是分片之后剩下部分的第一个元素的编号。
>>>number=[1,2,3,4,5,6,7,8,9,10]
希望访问到最后一个元素
>>>number[-3:-1][8,9]>>>number[-3:0][]
这不是我们想要的结果。分片中最左边的索引比右边的晚出现在序列中,结果就是一个空序列。
>>>number[-3:][8,9,10]>>>number[:3][1,2,3]>>>number[:]全部输出
2更大的步长
>>>number [0:10:1]
>>>number[10:0:-2] 左边比右边后的大,即左边是序列的尾部,右边是序列的头部 >>>number[0:10:-2]
输出空集
对于一个正步长,python会从序列的头部开始向右提取元素,直到最后一个元素;对于负步长,从序列的尾部开始向左提取元素,直到第一个 元素。
2.2.3 序列相加
通过加号进行序列的连接操作
>>>[1,2]+[3,4][1,2,3,4]>>>'Hello.'+'word''Hello.word'
>>>'Hello'+[1,2]
错误,列表和字符串无法连接在一起,虽然都是序列。两种相同类型的序列才能进行连接操作。
2.2.4 乘法
用数字x乘以一个序列会生成新的序列,在新的序列中原来的序列被重复x次。
Python中內建None这个值,它的确切含义是这里什么都没有。
如果想初始化一个长度为10的列表
>>>sequence=[none]*10
2.2.5 成员资格
用in检查一个值是否在序列中,条件为真返回True条件为假返回False
>>>pe='rw'>>>'w' in peTRUE
2.2.6 长度、最小值和最大值(len、min、max)
例如:
>>>len(number)>>>max(number)>>>min(nmuber)>>>min(1,2,3,)>>>max(2,3,4)
2.3
2.3.1 list函数
>>>list('Hello')['H','e','l','l','o']
将字符串转化为列表
列表可以使用所有序列的标准操作 ,例如索引、分片、连接和乘法。
1、为确定位置的元素赋值
略
2、删除
del xxx[]
3、分片赋值(可以使用与原序列不等长的序列进行替换)
>>>name=list('perl')>>>name[2:]=list('ar')
**程序可以一次为多个元素赋值。
>>>name[1:]=list('ython')name=['P','y','t','h','o','n']
分片赋值语句可以在不需要替换原有元素的时候插入新的元素
>>>number=[1,5]>>>number[1:]=[2,3,4]>>>numer[1,2,3,4,5]
这个程序只是替换了一个空的分片,因此实际的操作是插入了一个序列。以此类推,通过分片赋值来删除元素也是可行的。
>>>number=[1,2,3,4,5]>>>number[1:4]=[]>>>number[1,5]
2.3.3 列表方法
方法是一个与某些对象有密切联系的函数,对象可能是列表、数字,也可能是字符串或者其他类型的对象。调用方法:
对象.方法(参数)
- append 用于在列表条件末尾追加新的对象(直接修改原来的列表):
>>>lst=[1,2,3]>>>lst.append(4)>>>lst[1,2,3,4,]
2、count 用于统计某个元素在列表中出现的次数:
>>>['to','to'].count('to')2
只计数元素是否符合
>>>x=[[1,2],1,1,[2,1,[1,2]]]>>>x.count(1)2>>>x.count([1,2])1
3、extend 在列表的结尾一次性追加另一个序列中的多值。也可以用新列表扩展原有的列表:
>>>a=[1,2,3]>>>b=[5]>>>a.extend(b)>>>a[1,2,3,5]
4、index 用于从列表中找出某个值第一个匹配项的索引位置:
>>>knights=['we','are','the','knights','who']>>>knights.index('who')4
当无此元素时,报错
5、insert 用于将对象插入到列表中
xxx.insert(索引,插入元素)
6、pop 移除列表中的一个元素(默认最后一个),并且返回该元素的值
xxx.pop() 移除最后一个,并返回最后一个元素
xxx.pop(索引) 移除指定位置元素并返回
注意:pop方法是唯一一个既能修改列表又返回元素值的列表方法
7、remove 用于移除列表中某个值的第一个匹配项:
>>>x=['to','be','or','not','to','be']>>>x.remove('be')>>>x['to','or','not','to','be']
当不存在匹配项是报错
8,.reverse 将列表中的元素反向存放
9、sort 将列表进行排序 (将在原列表上进行修改,改变原列表)
例如:
>>>x=[1,3,2]>>>y=x[:]>>>y.sort()>>>y[1,2,3]>>>x[1,3,2]
当如下时
>>>y=x>>>y.sort()>>>x[1,2,3]>>>y[1,2,3]
当使用sorted函数是返回一个排好序的副本,原列表不变。
>>>sorted('Python')['P','h','n','o','t','y']
按ascii码顺序排序
2.4 元组
元组不能修改,创建元组的语法非常简单:如果用逗号分隔了一些值,那么你就自动创建了元组。
>>>1,2,3(1,2,3,)
元组通过圆括号括起来
>>>42,(42,)
长度为一的元组。
2.4.1 tuple函数
tuple将一个序列转换为元组。如果这个是元组那么原样返回。
2.4.2 基本元组操作
>>>x=1,2,3>>>x[1]1
**元组的作用:
1、当做键使用
2、作为函数的返回值存在**
- 《Python 第二章》列表和元组
- 第二章列表和元组
- Python 第二章-列表和元组
- 第二章 列表和元组
- 第二章_列表和元组
- 第二章 列表和元组
- 第二章 列表和元组
- Python 第二章 列表和元组(3) 列表
- Python基础教程学习比较----第二章 列表和元组
- Python 基础教程第二章 列表和元组
- python学习第二章----列表list和元组tuple
- Python学习笔记-第二章 列表和元组
- 《Python基础教程》第二章 列表和元组
- python基础教程学习笔记 第二章 列表和元组
- Python基础教程学习笔记第二章:列表和元组
- Python 第二章 列表和元组(4) 元组
- python学习 第二章 列表和元组 《python基础教程第二版修订版》
- 第二章-列表和元组——python基础教程(第二版)笔记
- Appium 使用wifi连接多台手机方法
- 从程序员之死看 IT 人士如何摆脱低情商诅咒——转载自CSDN官方博客
- 告别低俗,网络直播应当如何传递“正能量”?
- pullToRefreshListView的使用
- Python面试指南
- 第二章 列表和元组
- QuartZ Cron表达式
- spring boot 配置数据库加密
- Androidstudio添加背景图片
- SQL Server知识总结一
- C++四种强制类型转换符
- UOJ #119. 【UR #8】决战圆锥曲线 线段树 暴力 剪枝 卡常数
- WCF 协定中常用的操作
- MongoDB 复合索引