从0开始的Python学习003序列
sequence 序列
序列是一组有顺序数据的集合。不知道怎么说明更贴切,因为python的创建变量是不用定义类型,所以在序列中(因为有序我先把它看作是一个有序数组)的元素也不会被类型限制。
序列可以包含一个或多个元素,也可以没有任何元素(空序列)。
当然一个序列也是一个元素,所以在序列中也可以包含多个序列。
序列有两种
tuple(定值表; 也有翻译为元组) 和 list (表)。

a1 = (1,2,3,4,'',True) a2 = [6,'',False] print(a1,type(a1)) print(a2,type(a2))
tuple()和list[]的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更。
从含义可以看出和数学的开区间,闭区间正好相反。所以这个地方容易记错。

a1 = (1,2,3,4,'',True) a2 = [6,'',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,'',True) a2 = [6,'',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, '', True) <class 'tuple'>
[6, '', False] <class 'list'>
>>>
==================== RESTART: E:/python/studyPython004.py ====================
(1, 2, 3, 4, '', True) <class 'tuple'>
[6, '', False] <class 'list'>
[1, [2, 3]] <class 'list'>
[]
>>>
==================== RESTART: E:/python/studyPython004.py ====================
(1, 2, 3, 4, '', True) <class 'tuple'>
[6, '', 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, '', True) <class 'tuple'>
[6, '', False] <class 'list'>
[1, [2, 3]] <class 'list'>
[]
============分割线=============
数组[下标]
1
[2, 3]
[9, '', 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, '', True) <class 'tuple'>
[6, '', False] <class 'list'>
[1, [2, 3]] <class 'list'>
[]
============分割线=============
数组[下标]
1
[2, 3]
[9, '', False]
3
>>>
字符串是tuple
字符串是一种特殊的元组,因此可以执行元组的相关操作。
str = 'abcdef'
print(str[2:4])
这也就是它不能修改的原因。
从0开始的Python学习003序列的更多相关文章
- Python学习三---序列、列表、元组
一.序列 1.1.序列概念 pythn中最基本的数据结构是序列(sequence). 序列中每个元素被分配一个序号-元素索引,第一个索引是0,第二个是1,以此类推.类似JAVA中数组和集合中的下标. ...
- 从0开始的Python学习017Python标准库
简介 Python标准库使随着Python附带安装的,它包含很多有用的模块.所以对一个Python开发者来说,熟悉Python标准库是十分重要的.通过这些库中的模块,可以解决你的大部分问题. sys模 ...
- 从0开始的Python学习019更多的Python内容2
书接上文,接演Python全传 话说学了这么多Python的基础知识,也该写一点让别人看不懂的代码了. lambda lambda表达式,是一个方法的简化形似,它没有自己的代码块,它后面的语句就是它的 ...
- 从0开始的Python学习018更多的Python内容
特殊的方法 之前学习的都是一些常用的方法,为了使我们的学习更加的完整,我们在这里学习一些特殊的方法. 一般说来,特殊的方法都被用来模仿某个行为.例如,如果你想要为你的类使用x[key]这样的索引操作( ...
- 从0开始的Python学习015输入与输出
简介 在之前的编程中,我们的信息打印,数据的展示都是在控制台(命令行)直接输出的,信息都是一次性的没有办法复用和保存以便下次查看,今天我们将学习Python的输入输出,解决以上问题. 复习 得到输入用 ...
- 从0开始的Python学习014面向对象编程
简介 到目前为止,我们的编程都是根据数据的函数和语句块来设计的,面向过程的编程.还有一种我们将数据和功能结合起来使用对象的形式,使用它里面的数据和方法这种方法叫做面向对象的编程. 类和对象是面向对象 ...
- 从0开始的Python学习013编写一个Python脚本
通过之前的学习我们已经了解了Python的很多基础运用了,现在我们尝试着做一个有使用价值的小脚本. 问题 需求: 我想要一个可以给我备份重要文件的程序. 需求分析: 首先文件是有存储路径,文件的路径和 ...
- 从0开始的Python学习012数据结构&对象与类
简介 数据结构是处理数据的结构,或者说,他们是用来存储一组相关数据的. 在Python中三种内建的数据结构--列表.元组和字典.学会了使用它们会使编程变得的简单. 列表 list是处理一组有序的数据结 ...
- 从0开始的Python学习006流程控制
流程控制语句 Python中有三种控制流程语句: if.for.和while. if语句 使用if语句来校验一个条件,如果条件为真(True),运行if-块,如果为假(False),运行else-块. ...
随机推荐
- [Swift]LeetCode869. 重新排序得到 2 的幂 | Reordered Power of 2
Starting with a positive integer N, we reorder the digits in any order (including the original order ...
- Truncated incorrect DOUBLE value: 'd'的解决方法(jdbc)
今天写jdbc中dao的增删改查时遇到了一个问题,花费了好长时间,不过还好,有我峰哥出头,问题解决了,在这做个分享,对峰哥表达一下感激之情 网上搜索到的对“Truncated incorrect DO ...
- Linux清空文件内容
日志文件太多,需要清空: echo "" > mylog.log
- lambda表达式中的排序问题
新月新气象,10月第一篇,这也是我工作的第一天,这一篇文章我们要讲到lambda的排序问题 我是这样排序的 var list = DB.company.OrderBy(x=>x.isfreeze ...
- asp.net core 系列 22 EF(连接字符串,连接复原,DbContext)
一.连接字符串 在上二篇中,ASP.NET Core 应用程序连接字符串是写死在ConfigureServices代码中,下面介绍通过配置来实现.连接字符串可以存储在 appsettings.json ...
- redis 系列5 数据结构之字典(上)
一. 概述 字典又称符号表(symbol table),关联数组(associative array), 映射(map),是一种用于保存键值对(key-value pair)的抽象数据结构.在字典中, ...
- Python爬虫入门教程 19-100 51CTO学院IT技术课程抓取
写在前面 从今天开始的几篇文章,我将就国内目前比较主流的一些在线学习平台数据进行抓取,如果时间充足的情况下,会对他们进行一些简单的分析,好了,平台大概有51CTO学院,CSDN学院,网易云课堂,慕课网 ...
- SpringBoot入门教程(二十)Swagger2-自动生成RESTful规范API文档
Swagger2 方式,一定会让你有不一样的开发体验:功能丰富 :支持多种注解,自动生成接口文档界面,支持在界面测试API接口功能:及时更新 :开发过程中花一点写注释的时间,就可以及时的更新API文档 ...
- MongoDB的安全写入GetLastError
这次聊聊业务中经常出现的重试现象,可能很多运维都被开发莫名其妙的艾特然后让查一查业务中出现失败的情况,很不巧刚接手MongoDB的运维就碰到了一个案例. 前段时间与业务开发讨论过某业务服务的超时重试问 ...
- 我对C#的认知。
关于开发者的技术水平到底该如何定义,到底一个人的技术水平应该定位在高.中.低的标准是什么呢?很多人觉得这是一个仁者见仁的问题,有人觉得根据公司的那个员工等级判断.答案是肯定不是,从纯开发技术的角度来分 ...