python list下标从0开始_从0开始的Python学习003序列

本文介绍了Python中的序列类型,包括元组和列表的区别,如元组不可变,列表可变。讲解了序列的创建、元素引用及范围引用,并通过示例展示了如何通过下标访问和修改元素。此外,提到了字符串作为特殊元组的特性,以及序列中嵌套序列的概念。
摘要由CSDN通过智能技术生成

sequence 序列

序列是一组有顺序数据的集合。不知道怎么说明更贴切,因为python的创建变量是不用定义类型,所以在序列中(因为有序我先把它看作是一个有序数组)的元素也不会被类型限制。

序列可以包含一个或多个元素,也可以没有任何元素(空序列)。

当然一个序列也是一个元素,所以在序列中也可以包含多个序列。

序列有两种

tuple(定值表; 也有翻译为元组) 和 list (表)。

a1 = (1,2,3,4,'5',True)

a2= [6,'7',False]print(a1,type(a1))print(a2,type(a2))

tuple()和list[]的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更。

从含义可以看出和数学的开区间,闭区间正好相反。所以这个地方容易记错。

a1 = (1,2,3,4,'5',True)

a2= [6,'7',False]print(a1,type(a1))print(a2,type(a2))#一个序列作为另一个序列的元素

a3 = [1,[2,3]]#空序列

a4 =[]print(a3,type(a3))print(a4)

序列元素的引用

这点和数组有点像了,我们可以通过下标(从0开始)去获取元素。

a1 = (1,2,3,4,'5',True)

a2= [6,'7',False]print(a1,type(a1))print(a2,type(a2))#一个序列作为另一个序列的元素

a3 = [1,[2,3]]#空序列

a4 =[]print(a3,type(a3))print(a4)print('============分割线=============')print('数组[下标]')print(a1[0])print(a3[1])#元素的变更

a2[0]= 9

print(a2)#如果是tuple进行修改的时候会报错

a1[0] = 9

print (a1)

其他引用方式

范围引用: 基本样式[下限:上限:步长]

print(a1[:5])             # 从开始到下标4 (下标5的元素 不包括在内)

print(a1[2:])             # 从下标2到最后

print(a1[0:5:2])          # 从下标0到下标4 (下标5不包括在内),每隔2取一个元素 (下标为0,2,4的元素)

print(a1[2:0:-1])         # 从下标2到下标1

从上面可以看到,在范围引用的时候,如果写明上限,那么这个上限本身不包括在内。

尾部元素引用

print(a1[-1])             # 序列最后一个元素

print(a1[-3])             # 序列倒数第三个元素

同样,如果a1[0:-1], 那么最后一个元素不会被引用 (再一次,不包括上限元素本身)

取出的序列中的元素可以继续被引用:

Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64bit (AMD64)] on win32

Type"help", "copyright", "credits" or "license()" formore information.>>> print(1)1

>>>

==================== RESTART: E:/python/studyPython004.py ====================

5

>>>

==================== RESTART: E:/python/studyPython004.py ====================(1, 2, 3, 4, '5', True) [6, '7', False]

>>>

==================== RESTART: E:/python/studyPython004.py ====================(1, 2, 3, 4, '5', True) [6, '7', False] [1, [2, 3]] []>>>

==================== RESTART: E:/python/studyPython004.py ====================(1, 2, 3, 4, '5', True) [6, '7', False] [1, [2, 3]] []============分割线=============

1[2, 3]

Traceback (most recent call last):

File"E:/python/studyPython004.py", line 29, in a1[0]= 9TypeError:'tuple' object does notsupport item assignment>>>

==================== RESTART: E:/python/studyPython004.py ====================(1, 2, 3, 4, '5', True) [6, '7', False] [1, [2, 3]] []============分割线=============数组[下标]1[2, 3]

[9, '7', False]

Traceback (most recent call last):

File"E:/python/studyPython004.py", line 36, in a1[0]= 9TypeError:'tuple' object does notsupport item assignment>>>

==================== RESTART: E:/python/studyPython004.py ====================(1, 2, 3, 4, '5', True) [6, '7', False] [1, [2, 3]] []============分割线=============数组[下标]1[2, 3]

[9, '7', False]3

>>>

字符串是tuple

字符串是一种特殊的元组,因此可以执行元组的相关操作。

str = 'abcdef'

print(str[2:4])

这也就是它不能修改的原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值