列表元组字符串是python的什么系列_Python 序列(字符串、列表、元组)概述

2023-11-15

在 Python 中有六种基本数据类型,即数字(包括整形、长整、浮点)、字符串、列表、元组、字典和布尔类型。其中,字符串、列表、元组被称之为序列。因为它们有着相同的访问模式,它们的每一个元素可以通过指定一个偏移量的方式得到。而多个元素可以通过切片操作的方式一次得到。如下图所示:

N == 序列的长度 == len(sequence)

序列是 Python 中最基本的数据结构。 序列中的每个元素都分配一个索引,及其在序列中的位置,第一个索引是0,第二个索引是1,依此类推。序列都可以进行的操作包括索引,切片,加,乘,检查成员等。

序列类型操作符

序列类型的操作符主要有如下几种,按照优先级从高到底的顺序排列:

seq[ind] 获得下标为 ind 的元素

seq[ind1:ind2] 获得下标从 ind1 到 ind2 间的元素集合

seq * expr 序列重复 expr 次

seq1 + seq2 连接序列 seq1 和 seq2

obj in seq 判断 obj 元素是否包含在 seq 中

obj not in seq 判断 obj 元素是否不包含在 seq 中

成员关系操作符 (in, not in)

成员关系操作符用于判断一个元素是否属于一个序列。比如对字符串类型来说,就是判断一个字符是否属于这个字符串,对和元组类型来说,就代表了一个对象是否属于该对象序列。in/not in 操作符的返回值一般来讲就是 True/False,满足成员关系就返回 True,否则返回 False。该操作符的语法如下:

obj [not] in sequence

连接操作符( + )

连接操作符用于把一个序列和另一个相同类型的序列做连接,语法如下:

sequence1 + sequence2

该表达式的结果是一个包含 sequence1 和 sequence2 的内容的新序列。但是这个操作不是最快或者说最有效的。对字符串来说,这个操作不如把所有的子字符串放到一个列表或可迭代对象中,然后调用一个 join 方法来把所有的内容连接在一起节约内存;类似地,对列表来说,我们推荐读者用列表类型的 extend() 方法来把两个或者多个列表对象合并.当你需要简单地把两个对象的内容合并, 或者说不能依赖于可变对象的那些没有返回值(实际上它返回一个 None)的内建方法来完成的时候时,连接操作符还是很方便的一个选择。

重复操作符 ( * )

当你需要需要一个序列的多份拷贝时,重复操作符非常有用,它的语法如下:

sequence * copies_int

copies_int 必须是一个整数(不能是长整数)。像连接操作符一样,该操作符返回一个新的包含多份原对象拷贝的对象。

切片操作符 ( [], [:], [::] )

简单地讲, 所谓序列类型就是包含一些顺序排列的对象的一个结构。序列的访问方式类似于其他高级语言的数组,访问某一个元素时,可以通过使用方括号[ ]指定下标来实现,其语法如下:

sequence[index]

Python 序列的访问还可以通过用 : 来访问某一区间的元素,这就是所谓的切片,其语法如下:

sequence[starting_index:ending_index]

通过这种方式可以得到从起始索引到结束索引之间的一"片"元素。需要注意的是,切片操作的区间是前闭后开的,也就是结束索引对应的元素不包含在切片所选的元素内。

序列还可以用步长索引来进行扩展的切片操作,即 [::],它多出来的第三个索引值被用做步长参数。如下示例:

>>> s = 'abcde

>>> s[::-1] # 可以视作"翻转"操作

'hgfedcba'

>>> s[::2] # 隔一个取一个的操作

'aceg'

序列类型内建函数

类型转换

内建函数 list(),str()和 tuple()被用做在各种序列类型之间转换。这类似于其他语言里的类型转换,但是并没有进行任何的转换。这些转换实际上是工厂函数,将对象作为参数,并将其内容(浅)拷贝到新生成的对象中。因为一个 Python 的对象被建立,就不能更改其身份或类型。所谓浅拷贝就是只拷贝了对对象的索引,而不是重新建立了一个对象!序列类型的转换函数如下:

list(iter) 把可迭代对象转换为列表

str(obj) 把 obj 对象转换成字符串(对象的字符串表示法)

unicode(obj) 把对象转换成 Unicode 字符串(使用默认编码)

basestring() 抽象工厂函数,其作用仅仅是为 str 和 unicode 函数提供父类,所以不能被实例化,也不能被调用

tuple(iter) 把一个可迭代对象转换成一个元组对象

Operational

Python 为序列类型提供以下可操作:

enumerate(iter)

接受一个可迭代对象作为参数,返回一个 enumerate 对象(同时也是一个迭代器),该对象生成由 iter 每个元素的 index 值和 item 值组成的元组

len(seq)

返回 seq 的长度

max(iter,key=None) or max(arg0,arg1...,key=None)

返回 iter 或(arg0,arg1,...)中的最大值,如果指定了 key,这个 key 必须是一个可以传给 sort()方法的,用于比较的回调函数

min(iter, key=None) or min(arg0, arg1.... key=None)

返回 iter 里面的最小值;或者返回(arg0,arg2,...)里面的最小值;如果指定了 key,这个 key 必须是一个可以传给sort()方法的,用于比较的回调函数

reversed(seq)

接受一个序列作为参数,返回一个以逆序访问的迭代器

sorted(iter, func=None, key=None, reverse=False)

接受一个可迭代对象作为参数,返回一个有序的列表;可选参数func,key 和 reverse 的含义跟 list.sort()内建函数的参数含义一样

sum(seq, init=0)

返 回 seq 和 可 选 参 数 init 的 总 和 , 其 效 果 等 同 于reduce(operator.add,seq,init)

zip([it0, it1,... itN])

返回一个列表,其第一个元素是 it0,it1,...这些元素的第一个元素组成的一个元组,第二个...,类推

以上所列函数中len(),reversed()和 sum()函数只能接受序列类型对象作为参数,而剩下的则还可以接受可迭代对象做为参数,另外,max() 和 min()函数也可以接受一个参数列表。

cmp() 函数

cmp() 函数用于比较两个对象x和y,如果x < y ,返回负数;x == y, 返回0;x > y,返回正数。但是该函数只有在python2中可用,而且在python2所有版本中都可用,而在python3中该函数已经被废弃。所以在比较对象时,可以直接用比较运算符。

当然,在 Python3 中页出现了替代 cmp 的函数,即 lt、le、eq、ne、ge、gt:

lt(a, b) 相当于 a < b

le(a,b) 相当于 a <= b

eq(a,b) 相当于 a == b

ne(a,b) 相当于 a != b

gt(a,b) 相当于 a > b

ge(a, b)相当于 a>= b

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

列表元组字符串是python的什么系列_Python 序列(字符串、列表、元组)概述 的相关文章

  • 创新工场笔试题----有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱,求有多少种组合可以组合成n分钱?

    题目 有1分 2分 5分 10分四种硬币 每种硬币数量无限 给定n分钱 求有多少种组合可以组合成n分钱 代码如下 void Combination int a int index int n vector
  • 解决UnicodeEncodeError: 'ascii' codec can't encode characters in position问题

    原文地址 http blog sina com cn s blog 64a3795a01018vyp html 解决方法1 在开头加上 import sys reload sys sys setdefaultencoding utf 8 解
  • Jetpack学习之LiveData

    LiveData是一个可被观察的数据容器类 它是一个数据的容器 将数据包装起来 使数据成为被观察者 当该数据发生变化时 观察者能够获得通知 和ViewModel的关系 ViewModel用于存放页面所需的各种数据 以及数据相关的业务逻辑 因
  • sc 不是内部或外部命令

    安装nodejs 或yarn后 发现控制台命令会提示 sc 不是内部或外部命令 问题原因 nodejs或yarn安装后 会把系统默认环境变量Path的值给替换了 解决方案 将系统环境变量Path的值后面加上 SystemRoot syste
  • java superclass_java Class的 getSuperclass与getGenericSuperclass区别

    Class的getInterfaces与getGenericInterface区别 http www cnblogs com maokun p 6773076 html 一 getSuperclass 返回直接继承的父类 由于编译擦除 没有
  • 【好题】第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛 F-第二大数 思维

    题 求各个范围的第二大数 举个例子 4 9 6 4 5 6 4 4 6 5 6 第二大数分别是 6 4 4 6 5 6 我们的做法就是按照题目顺序 i从1开始 j从i 1开始 每次记录当前最大数和第二大数 对于每次新出现的数a j 如果它大
  • 二维动态规划>>01背包问题与普遍应用

    0 内容梗概 在二维动态规划中 01背包问题是动态规划中的经典问题 本文首先学习 总结01背包问题的思路 方法与实现 之后 01背包问题与其说是问题 更可以是一种解题思路 或者说套路 如果遇到别的题目时 能够清楚地判断出它是一个01背包的类
  • 【Metashape精品教程2】创建工程

    Metashape精品教程2 创建工程 文章目录 Metashape精品教程2 创建工程 前言 一 导入照片 二 导入pos 三 设置相机参数 没有可不设置 让软件反算相机参数 四 导入控制点 五 保存工程 前言 本章内容主要讲解工程的创建
  • statsmodels中的summary解读(OLS)

    Dep varible y 输出y变量的名称 Model OLS 使用的参数确定的模型OLS Method Least Squares 使用最小二乘法确定参数 Date Sat 10 Aug 2019 日期 Time 18 10 04 时间
  • 什么是Spring Cloud Config

    Spring Cloud Config 是一个解决分布式系统的配置管理方案 它包含 Client和 Server 两个部分 Server 提供配置文件的存储 以接口的形式将配置文件的内容提供出去 Client 通过接口获取数据 并依据此数据
  • 艺术+DeFi,看MEME如何玩转NFT

    内容概述 MEME代币已经成功登陆加密货币交易所Poloniex 就在成功上市之后 MEME代币价格一度飙升至1800美元高位 MEME协议允许人们赚取 菠萝积分 并将其兑换为NFT代币 9月22日 加密货币交易所Poloniex在其DeF
  • 机器学习阶段总结一

    最近一直在看机器学习相关内容 主要是看的斯坦福的Andrew Ng教授的公开课视频 可以点这里 看了前四讲 最大的感觉就是这简直就是概率论 线代 用到的数学知识着实不少 不过也挺有趣的 继续学下去 初步总结一下 主要是关于监督学习 回归分类
  • Redis学习:Redis的持久化

    Redis的持久化方式有两种 rdb和aof rdb理解为快照 save规则出发会的得到一个快照 aof是追加的形式 可以理解为binlog那种 RDB 在进行 RDB 的时候 redis 的主线程是不会做 io 操作的 主线程会 fork
  • 独门秘籍奉上!听说这是CCF遥感地块分割比赛冠军的“获胜法宝”!

    飞桨开发者说 黎昆昌 CCF BDCI遥感影像地块分割赛道冠军团队 CCF BDCI 2020 综合特等奖团队队长 中国科学院深圳先进技术研究院20级硕士 CCF大数据与计算智能大赛 CCF BCI 由中国计算机学会于2013年创办 作为全
  • Nginx配置不缓存html

    Nginx配置不缓存html 1 配置nginx不缓存html 1 1 修改配置文件 1 2 验证 2 Vue项目修改根目录index html 1 配置nginx不缓存html 1 1 修改配置文件 location expires 1h
  • 有特别有创意的网站设计案例

    有人说 UI 设计师集艺术性与科学性于一身 不仅需要对工具的使用熟练 更需要对美术艺术有一定的基础了解 如果想要成为优秀的 UI 设计师是一个需要磨砺的过程 需要不断的学习和积累 多看多练多感受 其中对于优质的设计案例的收集和练习是重要的
  • 清晰、幽默、轻松地深入理解YOLOv5网络结构和一些细节(查阅无数资料文献总结)

    最近的一篇关于YOLOv5检测小目标博客的点击量很高 没想到YOLOv5还是很有影响力的 既然这样 今天本人就本着幽默 清晰 轻松的风格带大家深入了解一下YOLOv5那倾倒众生的网络结构 和它较之其他算法的改进之处 还是一句话 希望我的不经
  • JavaScript的一种单元测试框架:mocha

    mocha 如果你听说过 测试驱动开发 TDD Test Driven Development 单元测试就不陌生 单元测试是用来对一个模块 一个函数或者一个类来进行正确性检验的测试工作 比如对函数abs 我们可以编写出以下几个测试用例 输入
  • pytorch 2.0.1 版本 [gpu] 安装

    安装Anaconda 1 下载官网 我们下载anaconda的目的主要是为了下一步的python环境管理 所以不考虑anaconda与已有的python的版本是否匹配的问题 下方点击之后会出现 可以根据自己的需要下载安装包 本文以Windo

随机推荐

  • QSerialPort串口数据传输上位机实时显示

    1 项目背景 通过串口实时传输下位机造的一帧图像数据 然后利用qt编写上位机 实现图像数据的实时显示 并保存任意帧数据 2 效果展示 3 下位机代码 include bsp clk h include bsp delay h include
  • 使用Python爬取多篇各类新闻文章

    一 简介 这篇文章主要是使用python中的requests和BeautifulSoup库来爬取上万篇的新闻文章 我这里以科技类新闻为例来爬取2000篇新闻文章http news chinairn com News moref9fff1 h
  • Redis学习

    Redis简介 REmote DIctionary Server Redis 是一个由 Salvatore Sanfilippo 写的 key value 存储系统 是跨平台的非关系型数据库 Redis 是一个开源的使用 ANSI C 语言
  • {%csrf_token%}的作用

  • 电脑右键打印不见了_win7右键没有打印选项怎么办

    2016 08 29 17 37 49 浏览量 10456 Windows10正式版系统下 如果用户同时选择多个文件 且文件数量多到某个值时 通常这个值是16 点击右键 会看到右键菜单里的 打开 打印 编辑 选项消失了 而如果同时选中的文件
  • rabbitmq中消息的存储

    1 大概原理 所有队列中的消息都以append的方式写到一个文件中 当这个文件的大小超过指定的限制大小后 关闭这个文件再创建一个新的文件供消息的写入 文件名 rdq 从0开始然后依次累加 当某个消息被删除时 并不立即从文件中删除相关信息 而
  • mysql删除数据对索引的影响_mysql中索引可以删除吗?

    mysql中索引可以删除 可以使用 DROP INDEX 语句来对索引进行删除 语法格式 DROP INDEX ON 不用的索引建议进行删除 因为它们会降低表的更新速度 影响数据库的性能 删除索引是指将表中已经存在的索引删除掉 不用的索引建
  • C++ 继承

    面向对象程序设计中最重要的一个概念是继承 继承允许我们依据另一个类来定义一个类 这使得创建和维护一个应用程序变得更容易 这样做 也达到了重用代码功能和提高执行效率的效果 当创建一个类时 您不需要重新编写新的数据成员和成员函数 只需指定新建的
  • 简单三步实现远程支持

    引言 服务是当今企业的核心竞争力 及时 精准地帮助客户解决问题 将有效提升企业的客户满意度 带来续费和增购 企业通过远程桌面解决技术支持难题 当客户或同事遇到故障时 工程师可为其提供支持 在客户监督下远程操作设备进行诊断和排障 相比上门服务
  • 计算机网络(4.8)网络层- IP层转发分组的流程

    假设 有四个A类网络通过三个路由器连接在一起 每一个网络上都可能有成千上万个主机 可以想像 若按目的主机号来制作路由表 每一 路由表就有4万个项目 即4万行 每一行对应于 一台主机 则所得出的路由表就会过于庞大 但若按主机所在的网络地址来制
  • vue-cli3.0安装element-ui组件及按需引入element-ui组件

    在VUE CLI 3下的第一个Element ui项目 菜鸟专用 上面这个链接是vue cli3 0安装element ui的详细过程 如果想要按需引用看下面的 1 引入vue add element How do you want to
  • 给定两个字符串 S 和 T,求 S 中包含 T 所有字符的最短连续子字符串的长度,同时要求时间复杂度不得超过 O(n)。

    输入 两个字符串 S 和 T S ADOBECODEBANC T ABC 输出 一个 S 字符串的子串 BANC 在这个样例中 S 中同时包含一个 A 一个 B 一个 C 的最短子字符串是 BANC function func source
  • 小程序用户头像昵称获取不到解决办法

    1 根据官方要求 不会要求强制性授权 头像和昵称也将被收回 给的是统一的头像和昵称 需要我们调用接口去获取微信头像和昵称 2 通过原生的标签调用来获取微信头像和微信昵称 注意 这里的标签不能够修改 修改会导致头像回显问题和昵称获取问题 头像
  • OCaml实用工具

    好久没写博客了 天天写代码 有时候打游戏 就懒了 本人主要为了扩展sgx edger8r 所以学习了一番OCaml 多动手搜和写代码才算有点学会了OCaml 这里主要说一下OCaml工具的使用 OCaml的语法学习请直接参考官方手册 Rea
  • Nginx http 500错误分析及解决方法

    Nginx http 500错误分析及解决方法 参考文章 1 Nginx http 500错误分析及解决方法 2 https www cnblogs com gdufs p 6410373 html 备忘一下
  • Python基础之条件判断

    Python基础之条件判断 一 环境介绍 二 条件判断介绍 三 if语句的使用 1 if的第一种使用方法 2 if的第二种使用方法 3 if的第三种使用方法 4 if的第四种使用方法 四 if判断的运算符 五 学习小结 一 环境介绍 Pyt
  • CSS中如何实现文字跑马灯效果?

    聚沙成塔 每天进步一点点 专栏简介 跑马灯 写在最后 专栏简介 前端入门之旅 探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅 这个专栏是为那些对Web开发感兴趣 刚刚踏入前端领域的
  • opencv颜色识别思路

    一 Opencv颜色识别步骤 调用手机摄像头 Opencv颜色处理 存储色块图像和位置信息 接下来主要介绍opencv颜色处理过程 二 Opencv图像处理思路 创建滑动条 用来调节阈值 识别出不同颜色 颜色空间转换 将RGB转换为HSV模
  • YOLO v5算法详解

    1 YOLO v5网络结构 2 输入端 3 Backone网络 4 Neck网络 5 Head网络 1 YOLO v5网络结构 图 1 YOLO v5网络结构图 由上图可知 YOLO v5主要由输入端 Backone Neck以及Predi
  • 列表元组字符串是python的什么系列_Python 序列(字符串、列表、元组)概述

    在 Python 中有六种基本数据类型 即数字 包括整形 长整 浮点 字符串 列表 元组 字典和布尔类型 其中 字符串 列表 元组被称之为序列 因为它们有着相同的访问模式 它们的每一个元素可以通过指定一个偏移量的方式得到 而多个元素可以通过