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序列的更多相关文章

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

    一.序列 1.1.序列概念 pythn中最基本的数据结构是序列(sequence). 序列中每个元素被分配一个序号-元素索引,第一个索引是0,第二个是1,以此类推.类似JAVA中数组和集合中的下标. ...

  2. 从0开始的Python学习017Python标准库

    简介 Python标准库使随着Python附带安装的,它包含很多有用的模块.所以对一个Python开发者来说,熟悉Python标准库是十分重要的.通过这些库中的模块,可以解决你的大部分问题. sys模 ...

  3. 从0开始的Python学习019更多的Python内容2

    书接上文,接演Python全传 话说学了这么多Python的基础知识,也该写一点让别人看不懂的代码了. lambda lambda表达式,是一个方法的简化形似,它没有自己的代码块,它后面的语句就是它的 ...

  4. 从0开始的Python学习018更多的Python内容

    特殊的方法 之前学习的都是一些常用的方法,为了使我们的学习更加的完整,我们在这里学习一些特殊的方法. 一般说来,特殊的方法都被用来模仿某个行为.例如,如果你想要为你的类使用x[key]这样的索引操作( ...

  5. 从0开始的Python学习015输入与输出

    简介 在之前的编程中,我们的信息打印,数据的展示都是在控制台(命令行)直接输出的,信息都是一次性的没有办法复用和保存以便下次查看,今天我们将学习Python的输入输出,解决以上问题. 复习 得到输入用 ...

  6. 从0开始的Python学习014面向对象编程

     简介 到目前为止,我们的编程都是根据数据的函数和语句块来设计的,面向过程的编程.还有一种我们将数据和功能结合起来使用对象的形式,使用它里面的数据和方法这种方法叫做面向对象的编程. 类和对象是面向对象 ...

  7. 从0开始的Python学习013编写一个Python脚本

    通过之前的学习我们已经了解了Python的很多基础运用了,现在我们尝试着做一个有使用价值的小脚本. 问题 需求: 我想要一个可以给我备份重要文件的程序. 需求分析: 首先文件是有存储路径,文件的路径和 ...

  8. 从0开始的Python学习012数据结构&对象与类

    简介 数据结构是处理数据的结构,或者说,他们是用来存储一组相关数据的. 在Python中三种内建的数据结构--列表.元组和字典.学会了使用它们会使编程变得的简单. 列表 list是处理一组有序的数据结 ...

  9. 从0开始的Python学习006流程控制

    流程控制语句 Python中有三种控制流程语句: if.for.和while. if语句 使用if语句来校验一个条件,如果条件为真(True),运行if-块,如果为假(False),运行else-块. ...

随机推荐

  1. Underscore.js 源码学习笔记(上)

    版本 Underscore.js 1.9.1 一共 1693 行.注释我就删了,太长了… 整体是一个 (function() {...}());  这样的东西,我们应该知道这是一个 IIFE(立即执行 ...

  2. 10.Django ModelForm

    ModelForm 1.ModeForm简单验证 from django.db import models # Create your models here. class UserInfo(mode ...

  3. 采坑:python base64

    需求:  读取文本内容,对字符串进行base64加密 >>> str = 'aaaaaaaaaaaaaaaaaaa\nbbbbbbbbbbbbbbbbbbbbbbbbbbb\nccc ...

  4. 2016年,总结篇 续 如何从 JQ 转到 VueJS 开发(一)

    接着 2016 年的总结,我们来看看 2016年 国内最火且没有之一的前端MVVM 框架 VueJs 虽然 到写文章的这个时间点,VueJs已经发布了 2.1.x 了, 但是对于很多 Vuejs 的初 ...

  5. Android Hybrid App自动化测试实战讲解(基于python)

    1.Hybrid App自动化测试概要 什么是Hybrid App? Hybrid App(混合模式移动应用)是指介于web-app.native-app这两者之间的app,兼具“Native App ...

  6. .NET应用程序管理服务AMS设计

    AMS全称是Application Management Server即应用程序管理服:由于经常要写些一些应用服务,每次部署和维护都比较麻烦,首先要针对服务编写一个windows服务程序方便系统启动里 ...

  7. Kafka数据迁移

    1.概述 Kafka的使用场景非常广泛,一些实时流数据业务场景,均依赖Kafka来做数据分流.而在分布式应用场景中,数据迁移是一个比较常见的问题.关于Kafka集群数据如何迁移,今天笔者将为大家详细介 ...

  8. spring cloud 配置zuul实用

    在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 技术背景 前面我们通过Ribbon或Feign实现了微服务之间的调用和负载均衡 ...

  9. 【Java基础】【15Colletion集合】

    15.01_集合框架(对象数组的概述和使用) A:案例演示 需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息. Student[] arr = new Stu ...

  10. consistent hash(一致性哈希算法)

    一.产生背景 今天咱不去长篇大论特别详细地讲解consistent hash,我争取用最轻松的方式告诉你consistent hash算法是什么,如果需要深入,Google一下~. 举个栗子吧: 比如 ...