您的位置:首页 > 编程语言 > Python开发

从入门到精通Python学习第三课:序列

2019-04-04 22:40 148 查看
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 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> print(1)
1
>>>
==================== RESTART: E:/python/studyPython004.py ====================
5
>>>
==================== RESTART: E:/python/studyPython004.py ====================
(1, 2, 3, 4, '5', True) <class 'tuple'>
[6, '7', False] <class 'list'>
>>>
==================== RESTART: E:/python/studyPython004.py ====================
(1, 2, 3, 4, '5', True) <class 'tuple'>
[6, '7', False] <class 'list'>
[1, [2, 3]] <class 'list'>
[]
>>>
==================== RESTART: E:/python/studyPython004.py ====================
(1, 2, 3, 4, '5', True) <class 'tuple'>
[6, '7', False] <class 'list'>
[1, [2, 3]] <class 'list'>
[]
============分割线=============
1
[2, 3]
Traceback (most recent call last):
File "E:/python/studyPython004.py", line 29, in <module>
a1[0] = 9
TypeError: 'tuple' object does not support item assignment
>>>
==================== RESTART: E:/python/studyPython004.py ====================
(1, 2, 3, 4, '5', True) <class 'tuple'>
[6, '7', False] <class 'list'>
[1, [2, 3]] <class 'list'>
[]
============分割线=============
数组[下标]
1
[2, 3]
[9, '7', False]
Traceback (most recent call last):
File "E:/python/studyPython004.py", line 36, in <module>
a1[0] = 9
TypeError: 'tuple' object does not support item assignment
>>>
==================== RESTART: E:/python/studyPython004.py ====================
(1, 2, 3, 4, '5', True) <class 'tuple'>
[6, '7', False] <class 'list'>
[1, [2, 3]] <class 'list'>
[]
============分割线=============
数组[下标]
1
[2, 3]
[9, '7', False]
3
>>>
字符串是tuple

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

str = ‘abcdef’

print(str[2:4])

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

简极(∞+∞=∞ ∞-∞=∞)
end

小编整理的一整套系统的Py thon学习教程从最基础的到框架再到项目实战的学习资料都有整理,送给每一位小伙伴, 有想学Py thon编程的,或是转行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴欢迎加入学习。点击加入企鹅群

原文地址

从入门到精通Python学习第十八课:more Python内容
从入门到精通Python学习第十七课:Python标准库
从入门到精通Python学习第十六课:异常
从入门到精通Python学习第十五课:输入与输出
从入门到精通Python学习第十四课:面向对象编程
从入门到精通Python学习第十三课:编写一个Python脚本
从入门到精通Python学习第十二课:数据结构&对象与类
从入门到精通Python学习第十一课:模块
从入门到精通Python学习第十课:return语句&DocStrings
从入门到精通Python学习第九课:参数
从入门到精通Python学习第八课:变量
从入门到精通Python学习第七课:函数&函数柯里化
从入门到精通Python学习第六课:流量控制
从入门到精通Python学习第五课:运算符与表达式
从入门到精通Python学习第四课:小的总结与补充
从入门到精通Python学习第三课:序列
从入门到精通Python学习第二课:python数据的类型
从入门到精通Python学习第一课:基础

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: