2、数据结构:列表和元组

Python中主要是序列和映射两类,除此之外,集合(set)也是一种容器类型。

Python中有六种内建的序列:列表和元组,以及字符串、Unicode字符串、buffer对象和xrange对象。这里主要讨论列表和元组。

列表可以修改,元组则不能,几乎所有的情况列表都可以替代元组。

通用的序列操作:

1. 索引,通过索引获取元素,使用负数从右边(最后一个元素的编号是-1)。

2. 分片,提供两个索引作为边界,左闭右开的区间如

numbers=[1,2,3,4,5,6,7,8,9]
numbers[-3:]
[7, 8, 9]
numbers[0:9:2]#步长
[1, 3, 5, 7, 9]
numbers[9:7:-1]
[9]

如果分片中最左边的索引比右边的晚出现在序列中,结果返回为空的序列。

对于一个正数步长,Python会从序列的头部开始向右提取元素,直到最后一个元素;而对于负数步长,则从序列的尾部开始向左提取元素,直到第一个元素。

3. 通过使用加号进行序列的连接操作

[1,2,3]+[4,5,6]
[1,2,3,4,5,6]
‘hello ‘+’worlld’
‘hello world’

4. 乘法,决定原序列被重复多少次

[1]*5
[1,1,1,1,1]

None是Python的内建值,它的确切含义是“这里什么也没有”,如果要初始化一个长度为10的列表,可以:sequence=[None]*10

5. 成员资格

检查值是否在序列中,使用in运算符。

6. 长度、最小值和最大值

内建函数len返回序列中所包含元素的数量,min和max分别返回序列中最大和最小的元素。

列表:Python的“苦力”

列表是可以改变大小的,有很多有用的、专门的方法。

list函数

创建列表,如list(‘hello’)

索引的元素赋值

如x[1]=2

删除元素del

删除元素,改变列表的长度

分片赋值

可实现插入、删除、替换等功能

append

在尾部追加元素

count

统计元素出现的次数

extend

扩展序列,与+类似,不同是:直接修改被扩展序列

index

列表中某值出现的第一个索引位置,没有找到抛出异常

Insert

在指定位置插入对象,插入后对象位置为指定的索引

pop

移除某位置的元素(默认最后一个),返回该元素值

remove

移除列表中某一值的第一个匹配项,无返回值

reverse

翻转元素

sort

在原位置上对列表进行排序,无返回值

sort的三个参数(关键参数,通过名字来指定),cmp指定排序比较的方式;key指定函数,该函数为元素创建键,然后元素按键来排序;reverse布尔值是否反向排序。

元组:不可变序列,元组没有像列表一样的方法。

创建:

>>> 1,2,3
(1, 2, 3)
>>> ()
()#空元组
>>> (1)#不是元组
1
>>> 1,#逗号很关键
(1,)

tuple和list类似,将序列转化为元组。

意义何在?一般来看,及时在不改变内容时也可以使用列表来替代元组,但由于两点原因,元组不可替代:元组可以在映射中当键使用,而列表不行;元组作为很多内建函数和方法的返回值存在。

原文地址:https://www.cnblogs.com/houkai/p/3478695.html