程序地带

Python基础编程(六)——序列类型


之前提到了python中的几种标准类型,这里对这几种标准类型简单总结一下,作为学习笔记记录。


在之前文章中提到的关于成员运算符的内容中,出现过序列类型的说法,那么什么是序列类型?


序列类型

序列(sequence)是指一段可以存放多个值的连续内存空间,这些值按照一定的顺序排列,可以通过每个值所在位置的编号(索引值)来进行访问。


在python中,序列类型包括string,list,tuple,set和dict。一般说来,序列类型都支持索引,切片,相加,相乘,成员操作,但是比较特殊的是,set和dict不支持索引,切片,相加,相乘操作。


索引操作

索引操作是指该序列类型可以通过下标值实现元素的随机访问。


a = 'abcdefghigk'
b = [1,2,3,4,5,6,7,8,9]
c = (1,2,3,4,5,6,7,8,9)
print(a[3])
print(b[4])
print(c[5])
print(a[-3])
print(b[-4])
print(c[-5])

结果为:


d
5
6
i
6
5

序列类型的索引操作有两个方向,正向从0开始,len-1结束,反向从-1开始,-len结束。


切片操作

切片操作是指通过特定的语法可以访问一定范围内的元素,从而生成新的序列。语法为:


var[start:end:step]

各个参数的含义为:


var表示序列对象start表示切片的起始位置,包含此位置,可以省略,省略时默认为0end表示切片的终止位置,不包含此位置,可以省略,省略时默认为末尾位置step表示切片的步长,可以省略,省略时默认为1,第二个冒号也可省略
a = [1,2,3,4,5,6,7,8,9]
print(a[1:6])
print(a[1:6:2])
print(a[:6:2])
print(a[1::2])
print(a[:])
print(a[::])
print(a[::-1])

结果为:


[2, 3, 4, 5, 6]
[2, 4, 6]
[1, 3, 5]
[2, 4, 6, 8]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1]

需要注意的时,当step=-1时,默认的起始位置和终止位置会发生改变。


相加操作

相加操作是指相同序列类型之间可以进行连接


a = [1,2,3,4]
b = [3,4,5,6]
print(a + b)
相乘操作

相乘操作是指对序列类型重复n次并添加到原序列上。


a = [1,2,3,4]
print(a * 3)

结果为:


[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
成员操作

成员操作是指可以利用成员运算符判断元素是否存在于某序列类型。


a = 'abcdefghigk'
b = [1,2,3,4,5,6,7,8,9]
c = (1,2,3,4,5,6,7,8,9)
d = {1,2,3,4}
e = {1:'tom',2:'jack'}
print('a' in a)
print(1 in b)
print(1 in c)
print(1 in d)
print(1 in e)

结果为:


True
True
True
True
True
序列相关函数
函数功能len()计算序列的长度,即返回序列中包含多少个元素max()找出序列中的最大元素min()找出序列中的最小元素list()将序列转换为列表str()将序列转换为字符串sum()计算元素和。注意,对序列使用 sum() 函数时,做加和操作的必须都是数字,不能是字符或字符串,否则将抛出异常sorted()对元素进行排序reversed()反向序列中的元素。dict是无序的序列类型,因此没有该操作enumerate()将序列组合为一个索引序列,多用在 for 循环中

上述函数有几个需要注意:


a = 'abcdefghigk'
b = [1,2,3,4,5,6,7,8,9]
c = (1,2,3,4,5,6,7,8,9)
d = {1,2,3,4}
e = {1:'tom',2:'jack'}
print(max(a))
print(max(e))
print(list(a))
print(list(e))
print(str(b),' ',len(str(b)))
print(str(e),' ',len(str(e)))
print(sum(e))
print(sorted(e))

结果为:


k
2
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g', 'k']
[1, 2]
[1, 2, 3, 4, 5, 6, 7, 8, 9] 27
{1: 'tom', 2: 'jack'} 21
3
[1, 2]

这几种操作可能跟想当然的结果不太一样,需要注意。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/SAKURASANN/article/details/111246319

随机推荐

JS数组方法,另indexOf()方法、includes()方法

toString方法把数组转换为(逗号分隔)的字符串。当数组用于字符串环境时,JavaScript会调用这一方法将数组自动转换成字符串。但是在某些情况下&#x...

ZPD_zpd 阅读(406)

2020-11-18

C程序文件结构1·c程序的组成部分a·main函数:每个c程序中都必须至少含一个主函数:main函数。函数分说明部分和执行部分,说明部分定义变量的数据类型&#...

八甜星河 阅读(693)

java学习第三周周记

java学习第三周周记***day1*类的组成和static修饰符***day2***继承day3final关键字和多态day4抽象类day5接口day1.1.一个类的成员组成一个类的组成:成员变量&...

会飞的鱼呐 阅读(739)

编译安装Memcached并使用systemctl管理

编译安装Memcached并使用systemctl管理

目录安装依赖编译安装Memcached配置环境变量systemctl管理memcached重载daemon开机自启memcached管理常用命令安装依赖在Linux下编译,需要gcc、make、cma...

itbsl 阅读(241)

线性表的应用实验报告

线性表的应用一.实验目的及实验环境1掌握线性表特性2熟练掌握线性表的基本操作3利用线性表设计算法并实现二.实验内容1.问题描述:约瑟夫环问题:已知n个人(以编...

多多很过分 阅读(950)

速度曲线步长

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"...

ppoet 阅读(896)

GPU虚拟机创建时间深度优化

GPU虚拟机创建时间深度优化

​桔妹导读:GPU虚拟机实例创建速度慢是公有云面临的普遍问题,由于通常情况下创建虚拟机属于低频操作而未引起业界的重视,实际生产中还是存在对GPU实例创建时间有苛刻要求的业务场景。本文将介绍滴滴云在解决...

滴滴技术 阅读(639)

为什么人工智能用 Python?

Python作为脚本语言,运行速度没有Java、C++快。Python到底有什么优势? 因为脚本语言写起来简单容易。Python虽然慢但是它只是调用AI接口...

夕夕老师 阅读(148)

redis~lua脚本的使用

通过lua脚本来运行redis命令主要体现在批量执行和跨语言方面,我们可以通过redis.call()函数来执行lua脚本,下面介绍几个lua里的参数evallua-scriptkey-num[key...

张占岭 阅读(805)