惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
腾讯CDC
宝玉的分享
宝玉的分享
量子位
Recent Announcements
Recent Announcements
Martin Fowler
Martin Fowler
J
Java Code Geeks
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
S
SegmentFault 最新的问题
B
Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
小众软件
小众软件
The Cloudflare Blog
Y
Y Combinator Blog
I
InfoQ
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
GbyAI
GbyAI
IT之家
IT之家

晚花行乐

马克卡尼在2026年达沃斯论坛上的讲话(阅读材料) | 晚花行乐 鸡娃如何用力才是恰到好处 | 晚花行乐 读万卷书,行万里路的辩证关系 | 晚花行乐 反对培训机构掐尖招生 | 晚花行乐 小泽和建国会谈最后10分钟全文(阅读材料) | 晚花行乐 来看看 DeepSeek 怎么鸡娃 | 晚花行乐 谈谈基本功 | 晚花行乐 惠普 ProDesk SFF PC 各系列参数对比 | 晚花行乐 解决瘦客户机上安装 Debian 12 启动失败问题 | 晚花行乐 意拾喻言:老外写的文言文 | 晚花行乐 笠翁对韵中的典故(十三元) | 晚花行乐 谈谈中考取消四小门 | 晚花行乐 亚马逊云科技产品免费试用攻略(3) - 对象存储服务 | 晚花行乐 在 Windows 10 LTSC 版本上安装 WSL2 | 晚花行乐 Debian 12 的常用配置项 | 晚花行乐 在 Debian 12 上安装 Nvidia 显卡驱动程序 | 晚花行乐 解决 Debian 12 关机失败问题 | 晚花行乐 解决 VS Code 自动更新版本后卡在连接界面 | 晚花行乐 观看巴黎奥运会有感 | 晚花行乐 在 Windows10 上安装惠普旧打印机驱动程序 | 晚花行乐 欢迎关注公众号:晚花行乐 | 晚花行乐 如何编写拼写检查器 | 晚花行乐 亚马逊云科技产品免费试用攻略(2) - 云服务器 | 晚花行乐 Pandas 中 axis 参数的理解(附实例) | 晚花行乐 我打算命个名,叫什么什么 Manager | 晚花行乐 上海武康路历史建筑一览 | 晚花行乐 Python 实现简单的数学表达式解析并处理 | 晚花行乐 观看马拉松的感悟 | 晚花行乐 Python 保存 Cookies 到文件并再次读取 | 晚花行乐 如何为 Hugo 静态网站添加评论功能 | 晚花行乐
Python 中的 sequence 类型 | 晚花行乐
2021-06-12 · via 晚花行乐

Python 中的 sequence 类型是几种数据类型的总称。这些类型的共同点是集合中的元素是有序排列的。本文详细介绍 sequence 中各种类型的共同点。

概述

sequence 类型有 list 、 tuple 和 str 三类。

  • list 类型是最常见的 sequence 类型,对应了其他语言(比如javascript)中的 array 类型。
  • tuple 是 list 类型的 immutable版本
  • str 类型也是 immutable

list 类型介绍

list 的底层保存的是指向内容的引用。

变量保存的底层形式见这篇文章:Python 中的变量赋值

tuple 类型介绍

tuple 对象一经生成,其中的元素便不可更改。在Python 里 immutable和hashable的概念中有介绍。

str 类型介绍

字符串使用单引号或者双引号括起来的字符序列。也是immutable 的。如果三个连续的单引号或者双引号,则表示一个长字符串,其中的换行符(\n)无需转义。比如:

print("""This is a 
long string""")

sequence 类型的共同用法

下列的用法可以用于 sequence 的任一类型:

寻址

[i]

方括号用来表示寻址。 S[i] 返回 S 中第 i 个元素。

i 是负数,则表示从尾部开始,或者可以理解为坐标值 i加上序列长度的结果,意思是:

S[ i ] = S[ len(S)+i ] ,当 -len(S)<=i<0

比如:

>>> range(10)[-2]
8
>>> range(10)[10-2]
8
>>> range(10)[-3]
7
>>> range(10)[10-3]
7
>>> range(10)[-10]
0
>>> range(10)[10-10]
0

切片

[m:n:i]

寻址的高级用法是切片 Slicing 。 S[m:n:i] 返回 S 中第 m 个元素开始,每隔 i 个元素,直到 n-1 为止的子集。比如:

>>> range(10)[1:8:2]
[1, 3, 5, 7]
>>> 

若不提供 i ,则 i 默认为1

>>> range(10)[1:8]  
[1, 2, 3, 4, 5, 6, 7]
>>> 

若m或者n是负数,则按照 寻址 表示:

>>> range(10)[-8:-1]
[2, 3, 4, 5, 6, 7, 8]

若不提供m或者n中的一个,则表示从到尾部结束或者从头部开始:

>>> range(10)[4:]
[4, 5, 6, 7, 8, 9]
>>> range(10)[:4]
[0, 1, 2, 3]
>>>

若m和n均不提供,则表示一个原始 sequence 的复制品:

>>> range(10)[:] 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

级联

+

sequence 的加法 “+” 被重载为级联动作:

>>> (1,2,3)+(4,5,6)
(1, 2, 3, 4, 5, 6)
>>> 

重复

*

sequence 的乘法 “*” 被重载为复制动作:

>>> "abc "*3
'abc abc abc '
>>>

判断成员身份

in

sequence 类型都支持 in 操作,以判断某个元素是否在集合内部。

>>> "c a" in ("abc "*3)
True
>>> 

sequence 类型支持的函数

元素个数

len()

len(S) 函数返回序列 S 的元素个数

元素的极值

min( ), max( )

min(S) 函数返回序列 S 的中最小元素, max(S) 函数返回序列 S 的中最大元素。

>>> min("ABC")
'A'
>>> max("aBC")
'a'
>>>

寻找元素

index( )

S.index(a) 法函数返回对象 S 的元素 a 第一次出现的位置,例如:

>>> "aaaa".index('a')
0
>>>

统计元素出现次数

count( )

S.count(a) 方法函数返回对象 S 的元素 a 出现的次数,例如:

>>> [[1],[1],[1]].count([1])
3

各位读后有什么想法,请在下方留言吧!如果对本文有疑问或者寻求合作,欢迎 联系邮箱邮箱已到剪贴板

精彩评论