当前位置: 首页 > news >正文

Python从入门到高手8.2节-元组的常用操作符

目录

​8.2.1 元组的常用操作符

8.2.2 []操作符: 索引访问元组

8.2.3  [:]操作符:元组的切片

8.2.4 +操作符:元组的加法

8.2.5  *操作符:元组的乘法

8.2.6 元组的关系运算

8.2.7  in操作符:查找元素

8.2.8 五一她玩了个狗吃屎


​8.2.1 元组的常用操作符

元组类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法,在本节的内容中,着重介绍通过操作符来对元组进行操作。

image.png

元组类型常用的操作符如下表所示:

image.png

8.2.2 []操作符: 索引访问元组

元组类型也是一种线性的序列结构,同字符串一样,可以通过索引来访问元组中的元素。操作语法:

element = tuple[index]

元组与字符串均为不可变的数据类型,只能通过索引来读取字符,不能对字符进行修改。而列表可变,可以通过索引来对元素进行修改。

Python中的索引分为正索引和负索引。正索引从0开始进行编号,表示数据集合中的第一个元素。负索引从-1开始编号,表示数据集合中的倒数第一个元素。正负索引值必须在有效的范围之内,否则会抛出越界访问的错误信息。

代码实例:

# __desc__ = 通过索引来访问元组中的元素numbers = (1,2,3,4)# 1.读取元组中的第一个元素
first_number = numbers[0]# 2.读取元组中的最后一个元素
last_number = numbers[-1]

8.2.3  [:]操作符:元组的切片

元组的切边操作同字符串的切片操作。对元组执行切片操作以后,返回的是一个新的元组。

操作语法:

new_tuple = tuple[:]

代码实例:

# __desc__ = 对元组执行切片操作# 定义元组类型变量
numbers = (1,2,3,4)container = numbers[0:2]
# container的输出为(1,2)container = numbers[:2]
# container的输出为(1,2)container = numbers[2:]
# container的输出为(3,4)container = numbers[-3:-1]
# container的输出为(2,3)

8.2.4 +操作符:元组的加法

元组的加法是把两个元组中的元素合并到一个新的元组中。

操作语法:

new_tuple = tuple0 + tuple1

代码实例:

# __desc__ = 对元组执行加法操作# 定义变量negative_numbers表示负数
negative_numbers = (-1,-2,-3,-4)# 定义变量 positive_numbers表示正数
positive_numbers = (1,2,3,4)# 定义变量 natural_numbers表示自然数
natural_numbers =  negative_numbers + positive_numbers
# natural_numbers的输出为(-1,-2,-3,-4,1,2,3,4)

8.2.5  *操作符:元组的乘法

"*" 操作符用来对元组进行复制,返回一个新的列表。

操作语法:

new_tuple = tuple * number

读者需注意,number必须为整型数字。

代码实例:

# __desc__ = 对元组执行乘法操作numbers = (-1,-2,-3)
new_numbers = numbers * 2# new_numbers的输出为(-1,-2,-3, -1,-2,-3)# *号后的整型值小于等于0时,输出空元组
empty = numbers * 0
# empty为空元组

8.2.6 元组的关系运算

使用关系运算符来对元组进行关系运算,返回的结果为布尔类型。元组的关系运算同列表的关系运算。

操作语法:

boolean = tuple0 > tuple1

代码实例:

# __desc__ = 对元组执行关系运算left = (1,3,99)
right = (2,)result = left > right
# result的输出为False

元组的关系运算是按序进行比较的,这里的按序比较是从元组的第一个元素开始,逐元素进行比较。只有在元素值相同,顺序也相同的情况下,两个元组才相等,否则以元素先后的大小关系来确定元组的大小关系。

例如在上文的代码中,虽然列表right只有一个元素,但是right中的首元素大于列表left中的第一个元素。这时Python会直接判定元组right大于元组left,即使元组left后面的元素都比元组right中的元素大。

我们现在来写一个算法,判断两个元组的大小关系:

# __desc__ = 通过while循环来判断元组是否相等left = (3,3,3,3,99,3)
right = (3,3,3,3,3,109)# 执行全局的len方法来获取复合数据类型的元素数
length_of_left = len(left)
length_of_right = len(right)length = length_of_left if length_of_left < length_of_right else length_of_right
index = 0'''
定义is_equal变量,如果值为True表示相等,
如果为False,则表示不相等
'''
is_equal = True# 以最小的元组长度来进行遍历
# 这样可以避免访问越界
while index < length:if left[index] != right[index]:is_equal = Falsebreakelif left[index] < right[index]:is_equal = Falsebreak index += 1
else:# 如果正常退出while循环,说明在最小长度内,元组的元素都相等is_equal = False if length_of_left != length_of_right else True

8.2.7  in操作符:查找元素

使用 "in" 操作符来判断元素是否存在于元组中,若存在则返回True,否则返回False。

操作语法:

boolean = element in tuple

当需要在代码中表示是否不存在时,需通过逻辑非运算符:

boolean = element not in tuple

代码实例:

# __desc__ = 通过in操作符来执行元素查找natural_numbers = (1,2,3,4,5,6,7,8,9)
number = 99if number in natural_numbers:# 如果number存在与列表中,那么表达的输出为Trueprint("{} in numbers:{}".format(number, numbers))
else:print("there is no {} in numbers {}".format(number, numbers))

博主正在CSDN写一套Python高级爬虫+JS逆向+安卓逆向的教程:

高级爬虫+安卓逆向,手把手教你成为一流的爬虫高手https://blog.csdn.net/thereisadownloader/category_12930002.html

8.2.8 五一她玩了个狗吃屎

跟薯条老师学后端开发,高级爬虫(JS逆向+安卓逆向),数据分析,大数据开发,量化交易,以及机器学习+深度学习算法。坚定自己的学习目标,保持学习的热情,那你成为高手只是时间问题。

薯条老师的学生在南方电网,林氏家居,京东,阿里等大厂。想系统学习Python和Java的同学,可以移步薯条老师的个人技术博客:薯条老师的个人技术博客http://www.chipscoco.com/ 对本节教程有任何不懂的同学,亦可在评论区中进行评论。薯条老师会详细解答你们提出的每一个问题。

http://www.xdnf.cn/news/283897.html

相关文章:

  • 【Leetcode 每日一题 - 补卡】838. 推多米诺
  • LeetCode 热题 100 78. 子集
  • HTML5好看的水果蔬菜在线商城网站源码系列模板9
  • Nginx正反向代理与正则表达式
  • jupyter notebook运行简单程序
  • Linux:深入理解数据链路层
  • Linux 入门:操作系统进程详解
  • Javase 基础加强 —— 01 异常
  • Java高并发处理核心技术详解:从理论到实战
  • 「一针见血能力」的终极训练手册
  • python全自动爬取m3u8网页视频(各类网站都通用)
  • 百度「心响」:左手“多智能体”右手“保姆级服务”,C端用户能看懂这技术告白吗?
  • 多路RTSP转RTMP推送解决方案—轻量高并发跨平台的实时流媒体中转引擎
  • indexedDB
  • 2023年第十四届蓝桥杯省赛B组Java题解【简洁易懂】
  • 再识动静态库
  • spring cloud 与 cloud alibaba 版本对照表
  • Fish-Speech TTS本地部署与推理接口文档
  • LlamaIndex统一管理存储组件的容器--StorageContext
  • 软件架构方之旅(5):SAAM 在软件技术架构评估中的应用与发展研究
  • 2024年第十五届蓝桥杯省赛B组Python【 简洁易懂题解】
  • 二叉搜索树实现删除功能 Java
  • 【RocketMQ Broker 相关源码】- broker 启动源码(2)
  • JavaScript学习教程,从入门到精通, jQuery浏览器事件和元素位置操作语法知识点及案例代码(35)
  • 【Java学习笔记】this关键字
  • QT聊天项目DAY07
  • 单片机自动排列上料控制程序
  • 链表的面试题1
  • 只用Prettier进行格式化项目
  • 第九周作业