2.列表和元组

2018-06-22 00:59:38来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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)

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

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

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

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

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

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

 

2.2.3序列相加

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

 

2.2.4乘法

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

None,空表格和初始化

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

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

 

2.2.5成员资格

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

 

 2.2.6长度,最小值和最大值

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

 

 

2.3列表(list)

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

 

2.3.1list函数

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

 

2.3.2list的基本操作

1.元素赋值

2.删除元素(del)

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

3.分片赋值

可用来添加/修改序列

和删除序列

 

 

2.3.3列表方法

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

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

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

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

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

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():将列表元素反向存放。

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

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

10.高级排序:

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

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

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

第六章将讲述如何定义。

 

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

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

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

 

2.4.1tuple

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

2.4.2元祖的操作和意义

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

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

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:flask框架的教程--程序的基本结构[二]

下一篇:python3-os模块中的os.walk(目录树生成器)