【Python】Python系列教程-- Python3 列表(十三)

news2024/11/28 8:35:16

文章目录

  • 前言
  • 访问元组
  • 修改元组
  • 删除元组
  • 元组运算符
  • 元组索引,截取
  • 元组内置函数
  • 关于元组是不可变的

前言

往期回顾:

  • Python系列教程–Python3介绍(一)
  • Python系列教程–Python3 环境搭建(二)
  • Python系列教程–Python3 VScode(三)
  • Python系列教程–Python3 基础语法(四)
  • Python系列教程–Python3 基本数据类型(五)
  • Python系列教程-- Python3 数据类型转换(六)
  • Python系列教程-- Python3 推导式(七)
  • Python系列教程-- Python3 解释器和注解(八)
  • Python系列教程-- Python3 什么是运算符(九)
  • Python系列教程-- Python3 数字(Number)(十)
  • Python系列教程-- Python3 字符串(十一)
  • Python系列教程-- Python3 列表(十二)

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号 ( ),列表使用方括号 [ ]。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

在这里插入图片描述

实例(Python 3.0+)

>>> tup1 = ('Google', 'Runoob', 1997, 2000)
>>> tup2 = (1, 2, 3, 4, 5 )
>>> tup3 = "a", "b", "c", "d"   #  不需要括号也可以
>>> type(tup3)
<class 'tuple'>

创建空元组

tup1 = ()

元组中只包含一个元素时,需要在元素后面添加逗号 , ,否则括号会被当作运算符使用:

实例(Python 3.0+)

>>> tup1 = (50)
>>> type(tup1)     # 不加逗号,类型为整型
<class 'int'>

>>> tup1 = (50,)
>>> type(tup1)     # 加上逗号,类型为元组
<class 'tuple'>

元组与字符串类似,下标索引从 0 开始,可以进行截取,组合等。

在这里插入图片描述

访问元组

元组可以使用下标索引来访问元组中的值,如下实例:

实例(Python 3.0+)

#!/usr/bin/python3
 
tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
 
print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])

以上实例输出结果:

tup1[0]:  Google
tup2[1:5]:  (2, 3, 4, 5)

修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:

实例(Python 3.0+)

#!/usr/bin/python3
 
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
 
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
 
# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)

以上实例输出结果:

(12, 34.56, 'abc', 'xyz')

删除元组

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:

实例(Python 3.0+)

#!/usr/bin/python3
 
tup = ('Google', 'Runoob', 1997, 2000)
 
print (tup)
del tup
print ("删除后的元组 tup : ")
print (tup)

以上实例元组被删除后,输出变量会有异常信息,输出如下所示:

删除后的元组 tup :

Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print (tup)
NameError: name 'tup' is not defined

元组运算符

与字符串一样,元组之间可以使用 +、+=和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

Python 表达式结果描述
len((1, 2, 3))3计算元素个数
>>> a = (1, 2, 3)
>>> b = (4, 5, 6)
>>> c = a+b
>>> c
(1, 2, 3, 4, 5, 6)(1, 2, 3, 4, 5, 6)
>>> a = (1, 2, 3)
>>> b = (4, 5, 6)
>>> a += b
>>> a
(1, 2, 3, 4, 5, 6)
(1, 2, 3, 4, 5, 6)连接,a 就变成了一个新的元组,它包含了 a 和 b 中的所有元素。
(‘Hi!’,) * 4(‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’)复制
3 in (1, 2, 3) True元素是否存在
for x in (1, 2, 3):
print (x, end=" ")
1 2 3迭代

元组索引,截取

因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:

元组:

tup = ('Google', 'Runoob', 'Taobao', 'Wiki', 'Weibo','Weixin')

在这里插入图片描述

Python 表达式结果描述
tup[1]‘Runoob’读取第二个元素
tup[-2]‘Weibo’反向读取,读取倒数第二个元素
tup[1:](‘Runoob’, ‘Taobao’, ‘Wiki’, ‘Weibo’, ‘Weixin’)截取元素,从第二个开始后的所有元素。
tup[1:4](‘Runoob’, ‘Taobao’, ‘Wiki’)截取元素,从第二个开始到第四个元素(索引为 3)。

运行实例如下:

实例

>>> tup = ('Google', 'Runoob', 'Taobao', 'Wiki', 'Weibo','Weixin')
>>> tup[1]
'Runoob'
>>> tup[-2]
'Weibo'
>>> tup[1:]
('Runoob', 'Taobao', 'Wiki', 'Weibo', 'Weixin')
>>> tup[1:4]
('Runoob', 'Taobao', 'Wiki')
>>>

元组内置函数

Python元组包含了以下内置函数

序号方法及描述实例
1len(tuple)计算元组元素个数。>>> tuple1 = (‘Google’, ‘Runoob’, ‘Taobao’)
>>> len(tuple1)
3
>>>
2max(tuple)返回元组中元素最大值。>>> tuple2 = (‘5’, ‘4’, ‘8’)
>>> max(tuple2)
‘8’
>>>
3min(tuple)返回元组中元素最小值。>>> tuple2 = (‘5’, ‘4’, ‘8’)
>>> min(tuple2)
‘4’
>>>
4tuple(iterable)将可迭代系列转换为元组。>>> list1= [‘Google’, ‘Taobao’, ‘Runoob’, ‘Baidu’]
>>> tuple1=tuple(list1)
>>>tuple1
(‘Google’, ‘Taobao’, ‘Runoob’, ‘Baidu’)

关于元组是不可变的

所谓元组的不可变指的是元组所指向的内存中的内容不可变。

>>> tup = ('r', 'u', 'n', 'o', 'o', 'b')
>>> tup[0] = 'g'     # 不支持修改元素
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> id(tup)     # 查看内存地址
4440687904
>>> tup = (1,2,3)
>>> id(tup)
4441088800    # 内存地址不一样了

从以上实例可以看出,重新赋值的元组 tup,绑定到新的对象了,不是修改了原来的对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/607577.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何打造高效的IT服务中心

官方网站 www.itilzj.com 文档资料: wenku.itilzj.com 引言 在当今数字时代&#xff0c;IT服务越来越成为企业发展的关键和优势。高效的IT服务中心能够提高员工生产力&#xff0c;改善客户体验&#xff0c;降低IT成本&#xff0c;并为企业数字化转型奠定良好的基础。本文将介绍…

Unity制作二次元卡通渲染角色材质

Unity制作二次元材质角色 大家好&#xff0c;我是阿赵。接下来准备开一个系列&#xff0c;讲一下二次元卡通角色的渲染。   先来看看成品&#xff0c;我从网上下载了著名游戏《罪恶装备》里面的一个角色模型。在没有做材质之前&#xff0c;把贴图赋予上去&#xff0c;给一个U…

3、数据库:Oracle部署 - 系统部署系列文章

Oracle数据库的安装&#xff0c;以前写过一篇&#xff0c;这次将新版的安装再记录一次&#xff0c;让读者能够有所了解&#xff0c;笔者也能够记录下最新版的安装过程。 一、数据库下载&#xff1b; Oracle最新版目前在官网是19c&#xff0c;从下面这个链接进去下载便可。 http…

java的UDP(二)

文章目录 1. DatagramSocket类2. 简单的UDP客户端3. DatagramChannel 1. DatagramSocket类 要收发DatagramPacket&#xff0c;必须打开一个数据报Socket。在java中&#xff0c;数据报Socekt通过DatagramSocekt类创建和访问。服务器Socket需要指定绑定端口&#xff0c;而用户端…

【react框架】结合antd做表单组件的一些心得记录

文章目录 前言功能的实现尽量先看看antd上是否已经提供当一个页面有多个表单组件时&#xff0c;就要优先考虑把值存在状态管理中如果一些表单比较简单且能确保后续不会有功能上的拓展&#xff0c;可以使用业务组件推荐其他的表单库 前言 因为最近在学其他东西&#xff0c;今天…

华中科技大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 华中科技大学计算机考研招生学院是计算机科学与技术学院、软件学院和网络空间安全学院。目前均已出拟录取名单。 华中科技大学计算机科学与技术学院成立于1997年&#xff0c;其前身是原华中理工大学&#xff08;即华中…

2023智源大会议程公开丨AI开源论坛

6月9日&#xff0c;2023北京智源大会&#xff0c;将邀请这一领域的探索者、实践者、以及关心智能科学的每个人&#xff0c;共同拉开未来舞台的帷幕&#xff0c;你准备好了吗&#xff1f;与会知名嘉宾包括&#xff0c;图灵奖得主Yann LeCun、图灵奖得主Geoffrey Hinton、OpenAI创…

chatgpt赋能python:Python反转字符串——简单易学的编程技巧

Python反转字符串——简单易学的编程技巧 你是否曾经遇到过需要反转字符串的情况&#xff1f;例如&#xff0c;你想把“Hello World”转换成“dlroW olleH”&#xff1f;如果是这样&#xff0c;Python可以帮你完成这个任务。在本文中&#xff0c;我们将看到如何使用Python的简…

C++标准模板库 栈容器的使用

我们知道c标准模板库中栈和队列很重要&#xff0c;是考试的重点内容&#xff0c;今天和我一起来学习栈容器的使用吧 特点&#xff1a;先进后出&#xff0c;后进先出&#xff08;餐馆的盘子&#xff09; C中有专门的栈容器stack 常用 Push(S,x);//入栈 POp(S,x);//出栈 GetT…

判断点在多边形内算法的C++实现

本篇博客介绍了使用射线法判断点在多边形内部还是外部的算法&#xff0c;并通过C做了具体实现 1. 算法思路 判断平面内点是否在多边形内有多种算法&#xff0c;其中射线法是其中比较好理解的一种&#xff0c;而且能够支持凹多边形的情况。该算法的思路很简单&#xff0c;就是…

网络基础(二)- TCP协议

TCP协议 TCP全称为 “传输控制协议(Transmission Control Protocol”)。它最重要的是解决在传输层通信的过程中&#xff0c;解决网络通信过程中可靠性的问题。当然&#xff0c;很多人在理解TCP的时候&#xff0c;往往只知道帮我们解决可靠性&#xff0c;但是&#xff0c;同时呢…

JavaWeb三大组件之一Filter(过滤器)

定义 拦截所有访问web资源的请求或者响应(servlet、Jsp页面、HTML页面)&#xff0c;从而实现我们自己的业务逻辑&#xff0c;这些逻辑可以是实现访问权限的控制、过滤敏感词、压缩响应等功能。 原理 过滤器是"链接"在容器的处理过程中的&#xff0c;它会在servle…

2023 华为 Datacom-HCIE 真题题库 09/12--含解析

单项选择题 1.[试题编号&#xff1a;190485] &#xff08;单选题&#xff09;华为交换机MAC地址表的老化时间默认是多少秒? A、500 B、5 C、300 D、400 答案&#xff1a;C 解析&#xff1a;无 2.[试题编号&#xff1a;190484] &#xff08;单选题&#xff09;如图所示&#…

小伙以1.2万元价格拍下一颗“荔枝王”:要将这颗最好的荔枝送给女友

近日&#xff0c;一则海南海口公益拍卖的新闻引起了网友的热议。 一位小伙子以1.2万元的价格拍下了一颗被誉为“荔枝王”的稀有果实&#xff0c;并表示要将这颗最好的荔枝送给自己的女友。 这个举动引起了一些网友的质疑&#xff0c;有人称赞他的浪漫&#xff0c;也有人质疑他的…

免费分享一套 SpringBoot + Vue的排课/选课管理系统,挺漂亮的

大家好&#xff0c;我是锋哥&#xff0c;看到一个不错的SpringBoot Vue 的排课/选课管理系统&#xff0c;分享下哈。 项目介绍 近年来&#xff0c;随着网络学校规模的逐渐增大&#xff0c;人工书写数据已经不能够处理如此庞大的数据。为了更好的适应信息时代的高效性&#x…

Nginx网络服务——虚拟主机设置

Nginx网络服务——虚拟主机设置 一、基于域名的 Nginx 虚拟主机1&#xff0e;为虚拟主机提供域名解析2.为虚拟主机准备网页文档3.修改Nginx的配置文件4.重启服务&#xff0c;访问测试 二、基于IP 的 Nginx 虚拟主机1.设置虚拟主机IP2.修改主配置文件3.重启服务&#xff0c;访问…

chatgpt赋能python:Python反向传播算法——神经网络的基础

Python反向传播算法——神经网络的基础 什么是反向传播算法&#xff1f; 反向传播算法是神经网络中最常用的学习算法之一。它的作用是根据输入数据和输出数据来调整神经网络中的权重&#xff0c;从而让神经网络模型更好地适应特定的问题。 简单来说&#xff0c;反向传播算法…

强化学习Q-learning入门

1. 引言 本文为最近学习的强化学习Q-learning的学习笔记&#xff0c;主要用于总结和日常记录&#xff0c;本文主要讲解相应的必备入门知识。 闲话少说&#xff0c;我们直接开始吧&#xff01; 2. 概念 我们小时候都经历过以下情形&#xff1a;我们做错了某年事&#xff0c;…

string

1.标准库的string类 构造函数&#xff1a; 构造函数的使用&#xff1a; 析构函数&#xff1a; 编译器会自己进行调用&#xff0c;不用管 拷贝构造函数&#xff1a; 追加字符函数&#xff1a; 追加字符串函数&#xff1a; 运算符重载函数&#xff1a; &#xff1a; 会用之后…

Python之socket编程(53)

​小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 和猫妹学Python&#xff0c;一起趣味学编程。 今日主题 今天的内容比较多哦&#xff0c;主要是网络编程的一些入门知识。 这些知识在互联网发展过程中很重要&#xff0…