序列1(列表、元组)-《python基础教程》笔记

初认序列

序列python是最基本的数据结构

python有6种内建序列,列表、元组、字符串、unicode字符串、buffer字符串、xrange对象

列表可修改,元组、字符串不可修改,绝大部分情况下,列表可以替换元组,除非元组作为字典的键(键不可修改)


序列通用操作

1.索引(序列中元素的位置序号)

python索引是一个循环索引,第一个位置是0,从左往右递增;最右边位置索引也可以是-1


2.分片(提取序列的一部分)

分片指定了序列的一部分元素,提取时包含最左侧元素,不包含最右侧元素

分片步长是第三个参数,默认为1;指定为负数时,将从尾部往左提取,此时指定区间的前两个参数倒置


3.序列相加

同种序列可以通过'+'直接连接


4.乘法

原序列 * n,新序列将会重复n次

初始化列表举例:

sequence=[None]*10

ps:nan 意味着 not a number


5.成员资格

用in检查


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

len()、max()、min()


列表

1.根据字符串创建列表:list函数

list('hello')


2.列表的基本操作

(1)元素赋值

x[1]=2


(2)删除元素:del语句(也可用于删除其他数据结构元素甚至变量)

del name[2]


(3)分片赋值(可实现:替换、插入、删除)

numbers[1:1]=[2,3,4]  #在索引号为1的元素后方插入3个元素

numbers[1:]=[]            #删除索引号为1元素的后面全部元素


3.列表方法

(1)append:列表末尾添加新对象

list.append(4)    


(2)count:返回该元素在列表中出现次数

x.count([1,2])


(3)extend:在列表末尾添加新序列

a.extend(b)

原始的连接操作(a+b)会返回一个全新的列表,而extend仅仅修改a

原始连接操作比extend方法效率低


(4)index:从列表中找出某个值第一个匹配项的索引位置,找不到则返回异常

knights.index('who')


(5)insert:将对象插入到列表中

numbers.insert(3,'four')

insert和extend均可通过分片赋值实现


(6)pop:移除列表中一个元素(默认最后一个),并返回该元素

x.pop()     #移除列表最后一个元素

x.pop(0)   #移除列表第一个元素


(7)remove:移除列表中某个值的第一个匹配项

x.remove('be')

不存在该值时会产生错误


(8)reverse:将列表元素顺序倒置

x.reverse()


(9)sort:对列表排序

x.sort()


(10)sorted:返回已排序的列表副本

y=x.sort()  #y为一个空值,错误做法

y=x.sorted()  #返回x已经排序的副本,正确


(11)高级排序实现:sort函数有三个可选参数,cmp、key、reverse

(一)cmp为比较函数的默认实现方式,可以自定义

number.sort(cmp)   #number将会递增排序

cmp(42,34)  #此时该语句值为1,cmp本身也是一个函数,还可以返-1、0

(二)key是自定义为每个元素创建的键,每个元素根据键排序

x.sort(key=len)     #x将根据元素长度排序

(三)reverse为简单的布尔型,为True或者False

x.sort(reverse=True)  #为True时列表将反向排序


ps:复制列表应注意

x=[1,2,3,4,5]

y=x #仅仅是让y指向x(类似别名),两者还是同一个列表,共一块内存


元组

元组和字符串一样,是一种不可修改的序列。

1.创建:用逗号分隔一些值

  1,2,3

(1,2,3)

  1,

以上三个例子均能生成元组,元组用圆括号‘( )’表示,但是创建的时候重点是需要用逗号,只用圆括号没用


2.tuple()函数

类似list()函数,以一个序列为参数,返回该序列的元组形式

序列为字典时返回键组成的元组;序列为元组时返回自身

tuple([1,2,3])


3.元组基本操作

创建、访问(按索引访问、按切片访问,参考序列基本操作)


4.元组有列表不可替代的意义:

(1)元组在映射、集合的成员中当作键使用

(2)元组作为很多内联函数和方法的返回值(可以访问,不可以修改)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值