python之序列

Python09

python之序列,第1张

Python 中的序列是一块可存放多个值的连续内存空间,所有值按一定顺序排列,每个值所在位置都有一个编号,称其为索引,我们可以通过索引访问其对应值。

其实字符串就是序列结构,除此之外常见的序列结构还包括列表、元组等。

序列索引支持非负数和负数, 索引为非负数,从 0 开始 ,如下所示:

以字符串为例,如下所示:

输出结果:

从结果来看,我们使用非负数索引与负数索引得到的结果一致。

切片操作可以访问一定范围内的元素,语法如下所示:

以字符串为例,如下所示:

输出结果:

Python 支持类型相同的序列使用 + 作相加操作,该操作不会去除重复的元素。以字符串为例,如下所示:

输出结果:

Python 中,使用数字 n 乘以一个序列会生成新的序列,内容为原来序列被重复 n 次的结果。以字符串为例,如下所示:

输出结果:

Python 使用 in 关键字检查某元素是否为序列的成员,语法如下:

val in seq

以字符串为例,如下所示:

输出结果:

True

2.6 内置函数

len()—— 计算序列的长度

max()——找出序列中的最大元素

min()——找出序列中的最小元素

list() ——将序列转换为列表

str() ——将序列转换为字符串

sum()——计算元素的和

sorted()——对元素进行排序

enumerate()——将序列组合为一个索引序列,多用在 for 循环中

举例,如下所示:

输出结果:

一、序列

1、序列中的索引操作

序列中的元素都是有序的,每一个元素都带有序号,这个序号叫 索引。索引有正值索引和负值索引之分。

2、加乘操作

3、切片操作

序列的切片(Slicing)就是从序列中切分出小的子序列。

切片运算符的语法形式为[start:end:step]。其中,start是开始索引,end是结束索引,step是步长(切片时获取的元素的间隔,可以为正整数,也可以为负整数)。

注意:切下的小切片包括start位置的元素,但不包括end位置的元素,start和end都可以省略。步长默认为1,可省略。

二、操作字符串

2.1查找字符串

字符串的find( )方法用于查找子字符串。该方法的语法为str.find(sub[,start[,end]]),表示:在索引start到end之间查找子字符串sub,如果找到,则返回最左端位置的索引;如果没有找到,则返回-1。start跟end都可以省略。

2.2替换字符串

replace( )方法替换匹配的子字符串,返回值是替换之后的字符串。该方法的语法为str.replace(old,new[,count]),表示:用new子字符串替换old子字符串。count参数指定了替换old子字符串的个数,如果count被省略,则替换所有old子字符串。

2.3分割字符串

split( )方法,按照子字符串来分割字符串,返回字符串列表对象。该方法的语法为str.split(sep=None,maxsplit=-1),表示:使用sep子字符串分割字符串str。maxsplit是最大分割次数,如果maxsplit被省略,则表示不限制分割次数。

2.4统计英文文章中单词出现的频率

序列是python的基本数据结构,序列中的每个元素被分配一个序号即索引,索引从0开始。

序列的两种常用类型:列表和元组。

列表与元组的区别:列表可修改,元组不能修改。

通用序列操作

1、索引:索引0指向第一个元素,索引-1指向最后一个元素。

2、程序:输入年,月(1-12),日(1-31),然后打印出相应的日期的月份名称。

代码详解:months=[]:定义一个months序列。

endings=['st','nd','rd']+17*['th']\

+['st','nd','rd']+7*['th']\

+['st']:定义一个endings序列,用来表示1-31的英文缩写,1st,2nd,3rd,4-20th,21st,22nd,23rd,24-30th,31st。

代码运行输出结果:

3、分片:提取序列中的某个范围内的元素。

分片tag[9:30]:第一个索引号9是包含在分片内的,第二个索引号30则不包含在分片内。

4、如果要去序列中最后一个最后一个元素怎么办?

可以通过置空,最后一个一个索引来获取最后的元素。可以通过置空最前的索引来获取第一个元素。可以两边都置空来获取整个元素。

5、步长:

正数步长:从序列的头部开始向右提取元素,直到最后一个元素。

负数步长:从序列的尾部开始向左提取元素,直到第一个元素。

6、序列运算

序列相加:对序列进行连接操作,列表与字符串是无法连接在一起的。

序列相乘:数字x乘以一个序列会生成新的序列,即原来的序列被重复x次。

None,空列表和初始化:初始化一个长度为10的列表。

代码分析:在屏幕上打印一个由字符组成的盒子,这个盒子在屏幕上居中,而且根据用户输入的句子自动调整大小。

成员资格:in运算符,输入布尔运算符,当条件为真时返回true,为假则返回false。

以上代码在UNIX系统中,可以检查文件可写和可执行权限的脚本。

以上代码可以检查输入的用户名是否存在于用户列表中。

以上代码可以作为过滤垃圾邮件的一部分。

代码分析:查看用户输入的用户名,密码是否存在于数据库中,如果存在则打印'Access granted'

程序运行结果:

内建函数:len:返回序列中包含元素的数量,min:返回序列中最小的元素,max:返回序列中最大的元素。