欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

2.列表和元组

程序员文章站 2022-06-18 16:29:12
2.1序列 分为列表, 元组,字符串,Unicode字符串,buffer对象,以及xrange对象 2.2序列通用操作 2.2.1索引(Indexing) 和其他语言一样,当index为正数时,例如 edward[1]会是序列中的第二个元素(42) 不同点是当index为负数时,例如-1,索引的元素 ......

2.1序列

 分为列表, 元组,字符串,Unicode字符串,buffer对象,以及xrange对象

 

2.2序列通用操作

2.2.1索引(Indexing)

和其他语言一样,当index为正数时,例如

edward=['Edward Gumby', 42]

edward[1]会是序列中的第二个元素(42)

不同点是当index为负数时,例如-1,索引的元素将是倒数第一个element(edward[-1]=42)

 

2.2.2分片(slicing)

2.列表和元组

第一个index表示分片开始的index(包括),第二个index为结束的index(不包括)

两个index可以为空,第一个index为空则表示从序列的第一个element开始分片,第二个index为空表示分片后的array将结束于原序列的结尾。

2.列表和元组

步长(分片的第三个参数,不设置是为1)的概念

2.列表和元组

步长为2是,将提取每隔1个的元素

2.列表和元组

每隔四个元素,提前第一个

2.列表和元组

步长可以为负数。 当步长为负数时,将从右往左提前元素。当前两个index不为空,第一个index必须比第二个index大。

2.列表和元组

 

2.2.3序列相加

只有相同类型的序列才能通过加号连接

2.列表和元组

 

2.2.4乘法

用序列*数字x将形成一个重复x次的新的序列

2.列表和元组

None,空表格和初始化

None是python中的一个內建值,表示里面什么都没有。可以用来初始化空的表格

初始化1个长度为10的列表:

2.列表和元组

 

2.2.5成员资格

检查一个值是否在序列里,可以使用in运算符。返回值为true或者false。

2.列表和元组

 

 2.2.6长度,最小值和最大值

长度(len),最小值(min)和最大值(max)

 2.列表和元组

 

2.3列表(list)

列表是可变的(可以改变内容),不同于元组和字符串。

 

2.3.1list函数

可以将任何类型的序列转化为列表(下面是是将字符串转化为list)

2.列表和元组

 

2.3.2list的基本操作

1.元素赋值

2.列表和元组

2.删除元素(del)

2.列表和元组

删除之后序列的长度也会减少

3.分片赋值

可用来添加/修改序列

2.列表和元组

和删除序列

 2.列表和元组

 

2.3.3列表方法

很多列表方法都可以以分片操作来实现相同效果,但是分片的话效率有可能更低。即使效率一样,仍然应该用列表方法,因为可读性更好。

1.append(element):将element加到list末尾。

2.count(element):计算element出现的次数。

3.extend(列表):用新列表扩展原来的列表。

append和extend区别:append只能添加一个element,extend添加多个。

2.列表和元组

4.index(element):找出element第一次出现的index,没有找到将引发异常。

5.insert(index, element):将element插入到index的地方。

6.pop(index):移除列表索引为index的element,index为空时,移除最后一个element(默认)。返回值为移除的element。

7.remove(element):移除第一次出现的element。没有element的话则报错。无返回值。

8.reverse():将列表元素反向存放。

2.列表和元组

9.sort():将原列表进行原位置的排序。直接改变原列表,不返回任何值。千万不要用b=a.sort()来得出sort后的序列。可以用b=sorted(a)。

2.列表和元组

想得出由大到小的sort,可以先sort再reverse。或者

2.列表和元组

10.高级排序:

sort中有两个参数,一个是key,一个是上面提到的reverse。

reverse声明是否反向排序,以key声明的属性为排序的方式,例如len:

2.列表和元组

cmp和operator:cmp和operator都相当于java里的comparator,可以自己定义排序的方式。cmp在python3.4版本后就不在被支持,需要用operator,同时需要import operator。

第六章将讲述如何定义。

 

2.4元组:不可变序列(不能修改)

用逗号分隔一些值,就创建了元组。用圆括号括起来(有时可以不用但是推荐用)。

假如元组只有一个值,那么必须在后面加一个逗号。

2.列表和元组

 

2.4.1tuple

和list类似, tuple以序列作为参数,并将它转为元组。

2.4.2元祖的操作和意义

因为元组不能修改,除了创建元组和访问元素之外,并没有太多其他操作。

一般列表更容易满足对序列的需求,元组可以在映射中当做key来使用(列表则不行),也是很多內建函数和方法的返回值。