列举三个python语言中重要的序列类型_python3 第十七章 - sequence(序列)

之前我们在讲for循环语句时就提到过序列,那么什么是序列(sequence)?

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 —— 它的索引(位置),第一个索引是0,第二个索引是1,依此类推。

Python有6个序列的内置类型:列表、元组、字符串、Unicode字符串、buffer对象、range对象(在python3中取消了range,同时将xrange重新命名成range)。

序列都可以进行的操作:索引、切片(分片)、序列相加、乘法、成员资格(检查成员)、长度、最小值和最大值

1. 索引

序列中所有的元素都是有编号的--从0开始递增。可以通过编号分别对序列的元素进行访问。Python的序列也可以从右边开始索引,最右边的一个元素的索引为-1,向左开始递减。

实例:

greeting = 'Hello'

print('greeting[2]', greeting[2])print('greeting[-1]', greeting[-1])

language= ['c', 'c++', 'python', 'c#']print('language[2]', language[2])

以上代码,输出:

greeting[2] l

greeting[-1] o

language[2] python

2、切片

索引用来对单个元素进行访问,用切片可以对一定范围内的元素进行访问,切片通过冒号相隔的两个索引来实现。切片操作的实现需要提供两个索引作为边界,第一个索引的元素是包含在切片内的,第二个则不包含在切片内。

实例:

number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]#取索引为第二和第三的元素

print('number[2:4]:', number[2:4])#负数表明是从右开始计数

print('number[-4:-1]:', number[-4:-1])#把第二个索引置空,表明包括到序列结尾的元素

print('number[-4:]:', number[-4:])#同上,把第一个索引置空,表明包含序列开始的元素

print('number[:3]:', number[:3])#默认在分片的时候,步长为1,这样指定步长为1,和默认的效果一样

print('number[0:10:1]:', number[0:10:1])#这里指定步长为2,这样就会跳过某些序列元素

print('number[0:10:2]:', number[0:10:2])#步长也可以是负数,但是第一个索引一定要大于第二个索引

print('number[10:0:-1]:', number[10:0:-1])print('number[10:0:-2]:', number[10:0:-2])

以上代码,输出:

number[2:4]: [3, 4]

number[-4:-1]: [7, 8, 9]

number[-4:]: [7, 8, 9, 10]

number[:3]: [1, 2, 3]

number[0:10:1]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

number[0:10:2]: [1, 3, 5, 7, 9]

number[10:0:-1]: [10, 9, 8, 7, 6, 5, 4, 3, 2]

number[10:0:-2]: [10, 8, 6, 4, 2]

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

3、序列相加

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

number2= [6, 7, 8, 9, 10]

greeting= ['hello', 'world']

greeting2= ['python']print('number + number2:', number +number2)print('greeting + greeting2:', greeting +greeting2)print('number + greeting:', number + greeting)

以上代码,输出:

number + number2: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

greeting+ greeting2: ['hello', 'world', 'python']

number+ greeting: [1, 2, 3, 4, 5, 'hello', 'world']

从第三行的输出中我们可以看出,在python3.6中,不同数据类型的序列也是可以相加的,但你不要这么去使用,因为后面你用min和max找最小值和最大值时会报错。

4、乘法

用数字n剩以一个序列会生成新的序列,而在新的序列中,原来的序列将会被重复n次。

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

greeting= ['hello', 'world']print('number * 2:', number * 2)print('greeting * 3', greeting * 3)

以上代码,输出:

number * 2: [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

greeting* 3 ['hello', 'world', 'hello', 'world', 'hello', 'world']

5、成员资格

可以使用in运算符来检查一个值是否在序列中,如果在其中,就返回Ture,如果不在,就返回False。

greeting = ['hello', 'world']if 'hello' ingreeting:print('\'hello\' 在 greeting 中')else:print('\'hello\' 不在 greeting 中')if 'python' ingreeting:print('\'python\' 在 greeting 中')else:print('\'python\' 不在 greeting 中')

以上代码,输出:

'hello'在 greeting 中'python' 不在 greeting 中

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

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

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

greeting= ['hello', 'world']print('max(number):', max(number))print('min(number):', min(number))print('len(number):', len(number))print('max(greeting):', max(greeting))print('min(greeting):', min(greeting))print('len(greeting):', len(greeting))

以上代码,输出:

max(number): 5min(number):1len(number):5max(greeting): world

min(greeting): hello

len(greeting):2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值