Python的序列(字符串,列表和元组)

序列:字符串,列表和元组

序列有着相同的访问模式:它的每一个元素可以通过指定一个偏移量的方式得到,而多个元素可以通过切片操作的方式一次得到。

序列的操作符

1,成员关系操作符(in,not in)

对字符串来说,就是判断一个字符是否属于这个字符串;对于列表和元组类型来说,就是一个对象是否属于该对象序列。in/not in 返回值为True/False
语法:对象 [not] in 序列

>>> a = ‘abcdef‘
>>> ‘a‘ in a
True
>>> ‘g‘ in a
False
>>> b = [‘a‘,‘b‘,‘c‘,‘d‘]
>>> ‘a‘ in b
True
>>> ‘f‘ in b
False

2,链接操作符(+)

这个操作符允许把一个序列和另一个相同类型的序列做链接
语法:sequence1 + suquence2,返回结果是包含sequence1和sequence2的内容的新序列。
这种方法并不是最高效的。对于字符串,可以把每一个字符放入一个列表或可迭代对象中,然后调用一个join方法,把所有内容链接一起节约内存;对列表来说,更好的是使用列表类型的extend()方法来把多个列表对象合并

>>> a = [‘abcde‘,‘fjig‘]
>>> ‘‘.join(a)
‘abcdefjig‘
>>> b = [‘jijifjie‘,‘gggege‘]
>>> a.extend(b)
>>> a
[‘abcde‘, ‘fjig‘, ‘jijifjie‘, ‘gggege‘]

3,重复操作符(*)

需要一个序列的多份拷贝时候
语法:sequence * copy_int
copy_int 必须是一个整型(不能是长整型),返回一个新的包含多份原对象拷贝的对象

>>> a = ‘abced‘
>>> a * 2
‘abcedabced‘
>>> b = [‘a‘,‘b‘]
>>> b * 2
[‘a‘, ‘b‘, ‘a‘, ‘b‘]

4,切片操作([],[:],[::])

用方括号加一个下标的方式访问它的每一个元素,或者通过在方括号中用冒号把开始下标和结束下标分开的方式访问一组连续的元素。
序列类型是其元素被顺序放置的一种数据结构类型,这种方式允许通过下标的方式获得某一个元素,或者通过指定下标范围来获得一组序列的元素。这种访问序列的方式叫做切片。

访问某一个元素的语法如下:

sequence[index] 
sequence是序列的名字,index是访问元素对象的偏移量
偏移量可以是正值,范围从0到偏移量最大值(序列长度少1),序列长度len()函数可以获得,实际范围 0 <= index <= len(sequence) -1
偏移量可以是复值,范围是 -len(sequence) <= index <= -1。负索引是以序列 的结束为起点的。

>>> name = [‘join‘,‘lilei‘,‘daylen‘]
>>> name[0]
‘join‘
>>> name[1]
‘lilei‘

访问越界的索引会触发IndexError的异常

>>> name[4]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

由于Python是面向对象的,可以像下面直接访问一个序列的元素(不用先把它赋值给一个变量)

>>> print (‘jony‘,‘lilei‘,‘day‘)[1]
lilei
一次得到多个元素,语法如下:

sequence[starting_index:ending_index]
通过这种方式可以得到从起始索引到结束索引(不包括结束索引对应的元素)之间的元素,如果没有提供或者用None作为索引,切片操作会从序列的最开始位置到末尾位置

>>> name = [‘join‘,‘lilei‘,‘daylen‘]
>>> name[:]
[‘join‘, ‘lilei‘, ‘daylen‘]
>>> name[None:None]
[‘join‘, ‘lilei‘, ‘daylen‘]
>>> name[0:1]
[‘join‘]
>>> name[-1:-3]
[]
>>> name[-3:-1]
[‘join‘, ‘lilei‘]
>>> name[-100:100]
[‘join‘, ‘lilei‘, ‘daylen‘]

从上面的可以看出,即使索引对应的元素不存在也不会报错,即使不符合从小到大也不会报错。

切片操作的步长
>>> a = ‘abcdefg‘
>>> for i in range(-1,-len(a),-1):
...     print i
...     print a[:i]
...
-1
abcdef
-2
abcde
-3
abcd
-4
abc
-5
ab
-6
a

如果需要第一次打印显示所有的字符呢:

>>> a = ‘abcdefg‘
>>> for i in [None]+range(-1,-len(a),-1):
...     print a[:i]
...
abcdefg
abcdef
abcde
abcd
abc
ab
a

如果上面的例子使用前面说到的extend()方法代替+操作,就会报错,这是因为extend()方法没有返回值的。[None].extend(…)的返回值是None

>>> for i in [None].extend(range(-1,-len(a),-1)):
...     print a[:i]
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: ‘NoneType‘ object is not iterable
时间: 2024-08-29 16:59:50

Python的序列(字符串,列表和元组)的相关文章

Python基础系列----序列(列表、元组、字符串)

1.定义                                                                                               1.数据结构:通过某种方式组织在一起的数据元素的集合.这些数据元素可以说数字或者字符,甚至可以是其他数据结构.在python中,最基本的数据结构是序列. 2.索引:序列中的每个元素被分配一个序号.注意索引默认从0开始. 在python中,内建了6中序列:列表.元组.字符串.unicode字符串.buf

Python【2】-列表和元组

一.序列 python包含六种内建的序列:列表.元组.字符串.unicode字符串.buffer对象.xrange对象. 列表可以修改,元组是不能修改的. 二.列表 列表list是变长序列,其中的内容也是可以修改的.序列通过方括号[]或者list函数进行定义,而且序列中还可以嵌套包含序列. >>> a=['wang',15]>>> print a['wang', 15]>>> b=['chen',18]>>> print b['che

python基本数据类型之列表和元组(一)

python基本数据类型之列表与元组(一) python中list与tuple都是可以遍历类型.不同的是,list是可以修改的,而元组属于不可变类型,不能修改. 列表和元组中的元素可以是任意类型,并且同一个列表和元组中可以包含多种类型的元素. list中有很多内置方法,元组由于不能修改,所以只有两个方法(count.index). 列表的内置方法 list的内置方法有:append.clear.copy.count.extend.index.insert.pop.remove和sort. 1.添

Python学习三---序列、列表、元组

一.序列 1.1.序列概念 pythn中最基本的数据结构是序列(sequence). 序列中每个元素被分配一个序号-元素索引,第一个索引是0,第二个是1,以此类推.类似JAVA中数组和集合中的下标. 从后向前,最后一个索引是-1,-2,.... python包含6种内建序列.最常用的两种类:列表和元组,其它内奸序列类型有字符串.Unicode字符串.buffer对象和xrange对象. 列表和元组的主要区别在于,列表可以修改,元组不能修改. 添加元素就用列表. 由于 一些原因不能修改时就用元组.

序列(列表、元组、字符串)字典小题

一.已知:元组 a = (1,2,3) 利用list方法,输出下面的结果:(1,2,4) 二. 已知:b = [9,5,36,25,4,1,2] 1.求出列表b的长度,最大值,最小值. 2.取值:取出25 3.切片:输出[5,36,25] 4. 删除:删除列表中25这个数字 5.扩充:将列表c =[7,6,11]扩充到列表b中 6. 排序:对b列表进行从小到大的排序输出,然后再反向使列表从大到小输出 7. 插入:将26插入到列表中, 使得最后输出结果为:b = [36, 26, 11, 9, 7

python学习笔记(四)列表、元组、字符串及字典

1.列表及元组操作 1.1 列表 Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 定义列表: 1 >>> namelist = ['cc','uu','tt','yy','nn'] 变量namelist就是一个list.用len()函数可以获得list元素的个数: 1 >>> print(len(namelist)) 1.1.1 list取值 用索引来访问list中每一个位置的元素,记得索引是从0开始的: 1 &

.Net程序员之Python基础教程学习----列表和元组 [First Day]

一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所以的范围是-N~N-1之间,超过这个范围就会提示 IndexError:  index out of range >>> greeting ='Hello world' >>> print greeting Hello world >>> print gr

python学习笔记之列表与元组

一.概述 python包含6种内建的序列,其中列表和元组是最常用的两种类型.列表和元组的主要区别在于,列表可以修改,元组则不能修改 使用上,如果要根据要求来添加元素,应当使用列表:而由于要求序列不可修改时,此时使用元组更合适 一般来说,几乎可以用列表代替元组 二.通用操作 所有序列类型都可以进行某些特定的操作,包括:索引.切片.加.乘以及检查元素是否属于序列 1.索引 序列中的所有元素同PHP Array一样都有编号,而且这个编号从0开始,可以通过这个编号来访问元素 字符串也是一个由字符组成的序

25课时 python可变序列:列表 list

序列是python的最基本数据结构 x=1,x为一个变量,值为一 y=[1,2,3],y是一个序列(可变序列列表) 索引的特点 从0开始 x=[1,2,3,4] x[0]=1 x[1]=2 可变序列\不可变序列 可变序列:列表list 不可变序列:元祖tuple,字符串str 生成器:range append 增加 remove 减少

python学习笔记之列表、元组、字典(1)

1.最基本的数据结构:序列 a.任何序列都是从 0 序列号(也成为索引)开始的: 如下:第一个元素是‘H’ >>> a = 'Hello'>>> a[0]'H' b.序列的操作: 分片:a[1:5]  #表示从第2个元素到第6个元素,但不包括第6个元素 a[-3:-1] #表示从倒数第3个元素到倒数第一个元素,但不包括倒数第一个元素 a[-3:]   #表示从倒数第三个元素到最后一个元素,可以取到最后一个元素 a[:]  #表示a的全部元素 a[1:9:2]  #表示从