资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Python

【python学习笔记】序列

Python 更新时间: 发布时间: 计算机考试归档 最新发布

【python学习笔记】序列

序列概述

  • 1、python的序列
    • 1、数据结构
    • 2、序列
    • 3、列表和元组的区别
    • 4、容器
    • 5、通用的序列操作
      • 1、索引
      • 2、切片
      • 3、序列相加
      • 4、序列乘法
      • 5、成员资格
      • 6、长度和最值

1、python的序列

1、数据结构

首先要了解数据结构的概念:以某种方式(如编号)组合起来的数据元素集合。

2、序列

在python中最基本的数据结构就是序列。序列中每个元素都有编号,即其位置或索引,第一个元素的索引为0,第二个索引为1,以此类推。
最常用的序列包含列表、元组、字符串。

3、列表和元组的区别

列表和元组的区别在于:列表是可以修改的,而元组不可以,这意味着列表适用于需要中途添加元素的情形,而元组适用于需要禁止修改序列的情形。
编程时基本上所有情况都可以用列表来代替元组,有一种例外是:将元组用作字典键,这种情况下不能用列表来代替元组,因为字典是不允许修改的。

4、容器

python支持一种数据结构的基本概念,叫做**“容器”,容器基本上就是可以包含其他对象的对象。
两种主要的容器就是序列(表、元组)和映射(字典)。序列中每个元素都有编号**,映射中每个元素都有名称(键)。
还有一种既不是序列也不是映射的容器叫做**“集合”**。

5、通用的序列操作

几种操作适用于所有的序列,包括索引、切片、相加、相乘、成员资格检查。
还提供了一些内置函数,可用于确定序列长度以及找出序列中最大和最小的元素。
还有一个重要操作叫迭代,用于对序列中的每个元素都执行特定的操作,讲循环的时候再说。

1、索引

序列中所有元素都有编号,从0开始递增。

greeting = 'Hello,hehe'print(greeting[0])

执行结果:

HProcess finished with exit code 0

注:python没有字符类型,一个字符就是只包含一个元素的字符串。
上面的这种操作叫做“索引”,可用索引获取元素。索引还可以是负数,即从右往左,-1是最后一个元素的位置:

greeting = 'Hello,hehe'print(greeting[-1])

执行结果:

eProcess finished with exit code 0

如果函数调用返回一个序列,可直接进行索引操作:

>>> a = input("input something:")[2]input something:abcde>>> a'c'

2、切片

切片用于访问特定范围内的元素。操作是使用两个索引,并用冒号分隔:

>>> greeting = 'Hello,hehe'>>> greeting[2:4]'ll'

注意一个原则“顾前不顾后”,即切片的终点不包含在切片内,而起点包含在切片内。
当然索引也可以是负数:

>>> n = [1,2,3,4,5,6,7,8,9,10]>>> n[-3:-1][8, 9]

如果想让10也在切片内怎么办呢?
肯定不能是[-3:0],因为会返回空序列 。在执行切片操作时,如果第一个索引位于第二个索引指定的元素后面,结果就会为空序列。办法是用一种简写:

>>> n[-3:][8, 9, 10]

如果切片的结束位于序列末尾,可以省略第二个索引。
同样,如果切片始于序列的开头,可以省略第一个索引:

>>> n[:3][1, 2, 3]

如果要复制整个序列,可以省略两个索引:

>>> n[:][1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

另外还可以设置切片的步长:
普通切片中步长为1,如果想每3个元素提取1个,可以设置步长为4:

>>> n[::4][1, 5, 9]

步长不能为0,否则无法移动,但步长可以为负数,即从右向左移动:

>>> n[::-1][10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

要正确的得到想要的元素,切片操作颇费脑筋。

3、序列相加

就是用“+”来对两个序列进行拼接:

>>> [1,2,3]+[4,5,6][1, 2, 3, 4, 5, 6]>>> "hello"+"world"'helloworld'>>> [1,2,3]+"hello"Traceback (most recent call last):  File "", line 1, in     [1,2,3]+"hello"TypeError: can only concatenate list (not "str") to list

上述可见,虽然字符串和列表都是序列,但是不同类型的序列不能进行拼接。

4、序列乘法

说的是序列和数字相乘,这会重复这个序列n次,创建一个新序列:

>>> "hi"*5'hihihihihi'
>>> [15]*10[15, 15, 15, 15, 15, 15, 15, 15, 15, 15]

这种情况可以用于初始化一个包含10个元素的序列:

>>> s = [None]>>> s*10[None, None, None, None, None, None, None, None, None, None]

注意None的写法,不要写成别的东西,None在python中表示“什么都没有”。

>>> s=[none]Traceback (most recent call last):  File "", line 1, in     s=[none]NameError: name 'none' is not defined>>> s=[NONE]Traceback (most recent call last):  File "", line 1, in     s=[NONE]NameError: name 'NONE' is not defined

5、成员资格

就是用来判断特定的值是否包含在序列内,运算符为“in”。

>>> n = [1,2,3]>>> 1 in nTrue>>> 6 in nFalse

满足时返回Ture,不满足返回False,这样的运算符叫做"布尔运算符",而Ture和False叫做“布尔值”。

>>> w = "word">>> r in wTraceback (most recent call last):  File "", line 1, in     r in wNameError: name 'r' is not defined>>> "r" in wTrue

上面的例子要注意字符串的写法。

6、长度和最值

长度:len,最大值:max,最小值:min
这些都是内置函数。

>>> n=[1,2,3]>>> len(n)3>>> max(n)3>>> min(n)1

max、min不光可以传序列,还可以直接传数,但是不能只传一个数:

>>> max(1,2)2>>> min(1,2,3)1>>> min(123)Traceback (most recent call last):  File "", line 1, in     min(123)TypeError: 'int' object is not iterable

len传的一定是个序列,如果是一个数会报错:

>>> len(1)Traceback (most recent call last):  File "", line 1, in     len(1)TypeError: object of type 'int' has no len()>>> len("1")1

结束。

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1094464.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【【python学习笔记】序列】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2