美文网首页
Python 通用的序列操作

Python 通用的序列操作

作者: 不思九八 | 来源:发表于2019-12-06 21:55 被阅读0次

Python通用的序列操作有:索引、切片、乘法、成员资格检查、长度、最小值和最大值。

序列 (sequence)概述

序列 (sequence)是Python最基本的一种数据结构。

序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,依此类推。Python的序列索引支持负数,-1表示序列的最后一个元素,这是Python不同其他很多种语言不同的地方。

Python内置了多种序列,列表、元组、字符串是其中最常用的三种,本文为你描述各种序列的通用操作。

索引


>>> items = ['a', 'b', 'b', 1, 2, 3]

>>> items[3]

1

>>> greeting = 'Hello'

>>> greeting[0]

'H'

索引从0开始,索引号为0的元素为1,greeting的索引号为0的元素为'H'。

你可能注意到'Hello'和'H'都用单引号包围,这是Python不同于其他语言的另一个地方。Python并没有专门用于表示字符的数据类型,因此一个字符就是一个只包含一个元素的字符串。


>>> greeting[-1]

'o'

Python的序列索引支持负数,-1表示倒数第一个元素。

切片(slicing)

切片 (slicing)操作用于访问序列特定范围内的元素。在一对方括号内使用两个索引,并用冒号隔开:


>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> numbers[3:6]

[4, 5, 6]

注意到,返回的序列并未包含愿序列的第6个元素7,就相当于数学集合中的左闭右开区间操作。

换言之,你提供两个索引来指定切片的边界,其中第一个索引指定的元素包含在切片内,但第二个索引指定的元素不包含在切片内。

简写

保留冒号,省略第一个索引,表示从序列起始位置开始切片;省略第二个索引,表示切片到序列末尾,包含最后一个元素:


>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> numbers[0:3]

[1, 2, 3]

>>> numbers[:3]

[1, 2, 3]

>>> numbers[7:10]

[8, 9, 10]

>>> numbers[7:]

[8, 9, 10]

>>> numbers[-3:]

[8, 9, 10]

>>> numbers[-3:10]

[8, 9, 10]

  • numbers[:3]等价于numbers[0:3],表示取前三个元素。

  • numbers[7:10] 取最后三个元素,可简写为numbers[7:], 但更常简写为numbers[-3:]

指定步长

这个操作的效果是:在指定的区间内间隔取元素,语法格式为:


items[index1: index2: step]

例如:


>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> numbers[0:10:2]

[1, 3, 5, 7, 9]

>>> numbers[1:10:2]

[2, 4, 6, 8, 10]

>>> numbers[::2]

[1, 3, 5, 7, 9]

>>> numbers[10:0:-1]

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

>>> numbers[-1:0:-1]

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

  • 前两个操作分别取索引为偶数和奇数的元素

  • 索引可以省略

  • 省略的步长为1,表示不间隔,间隔不能为0

  • 步长可以是负数,此时第一个索引位置必须“大于”第二个索引位置。

步长为正数时,它从起点移到终点,而步长为负数时,它从终点移到起点。

序列相加

可以使用加法运算(+运算符)拼接两个序列:


>>> [1, 2, 3] + [4, 5, 6]

[1, 2, 3, 4, 5, 6]

>>> 'Hello,' + 'world!'

'Hello,world!'

>>> [1, 2, 3] + 'world!'

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: can only concatenate list (not "str") to list

从错误消息可知,不能拼接列表和字符串,虽然它们都是序列。一般而言,不能拼接不同类型的序列。

序列乘法

将序列与数x 相乘时,将重复这个序列x 次来创建一个新序列:


>>> "Hello " * 5

'Hello Hello Hello Hello Hello '

初始化一个长度为10的空列表:


>>> sequence = [None] * 10

>>> sequence

[None, None, None, None, None, None, None, None, None, None]

成员资格检查(in操作)

成员资格检查判定一个元素是否存在于集合中,如存在返回True,否则返回False,实际上是一个布尔表达式。

语法:


x in list

例如:


>>> 'python' in 'hello, python world'

True

>>> 3 in [2, 3, 4]

True

>>> 5 in [2, 3, 4]

False

长度、最大值、最小值

内置函数len返回序列包含的元素个数,而minmax分别返回序列中最小和最大的元素。


>>> numbers = [100, 34, 678]

>>> len(numbers)

3

>>> max(numbers)

678

>>> min(numbers)

34

>>> max(2, 3)

3

>>> min(9, 3, 2, 5)

2

总结

Python通用的序列操作有:索引、切片、乘法、成员资格检查、长度、最小值和最大值。

相关文章

  • 数据团Python_3. Python序列及整体概述及通用操作

    3. Python序列及整体概述及通用操作 序列是Python最基本的数据结构。 序列可变序列:list不可变序列...

  • 10、for循环语句

    上集回顾: 通用序列操作 可变序列操作 连续学习了两集Python列表技能,列表(list)这个可变序列相关知识点...

  • Python --- 序列类型及操作

    笔记主要由来于 慕课网 Python 语言程序设计 序列类型定义序列类型通用操作符序列类型通用函数和方法元组类型...

  • Python序列的通用操作

    内容概述 序列:将一系列的对象并列放在一起,形成一个集合来进行操作、或者形成一个数据结构。 (序列是描述数据类型的...

  • Python序列的通用操作

    序列是指有序的队列,重点在“有序”。 一、序列分类 Python有6种内置序列:列表list、元组tuple、字符...

  • Python 通用的序列操作

    Python通用的序列操作有:索引、切片、乘法、成员资格检查、长度、最小值和最大值。 序列 (sequence)概...

  • Python3.5笔记——第3章 列表与元组

    Python 3.5笔记 第三章 列表与元组 通用序列操作 索引 序列是Python中最基本的数据结构。序列中的每...

  • 10 Python通用序列操作

    在讲解列表和元组之前,本节先介绍Python中序列的通用操作,这些操作在列表和元组中都会用到。Python中所有序...

  • Python基础 - 序列的通用操作

    数据结构 - 是通过某种方式组织在一起的数据元素的集合,这些元素可是是数字或字符。Python中,最基本的数据结构...

  • Python学习4:序列

    Python中没有数组的概念,类似的数据结构是序列。序列包括列表和元组两种。今天学习的是一些序列的通用操作。 1....

网友评论

      本文标题:Python 通用的序列操作

      本文链接:https://www.haomeiwen.com/subject/vfhygctx.html