Python(四)——元组

news2024/10/7 2:16:11

文章目录

  • 元组
    • 创建元组
    • 修改元组、拼接元组
    • 访问元组
    • 查找元组
    • 切片操作
    • 元组方法
    • 与列表的比较

元组

元组(tuple)是一种有序且不可更改的集合,元组中允许存在重复的成员。

  • Python 的元组与列表类似,不同之处在于元组的元素不能修改。
  • 元组使用小括号,列表使用方括号。

创建元组

  • 在Python中,()表示一个空元组
a = ()
print(type(a))  # <class 'tuple'>
print(a)        # ()

  • 创建空元组
tup = ()
  • 元组中存放的元素可以是不同类型的
tup = ('cxy', 'chemistry', FALSE, 2004)

修改元组、拼接元组

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

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

我们可以用下面的方式强制修改

tup1 = (12, 34.56)
tmp = list(tup1)   # 将元组转换成列表
tmp[0] = 10     # 更改列表
a = tuple(tmp)  # 将列表转换回元组
print(a)        # (12, 34.56)

虽然这种方式可以对元组进行修改,但不建议这样做,如果一个序列中的元素是需要被修改的,最好就直接用列表进行存储

访问元组

元组可以使用下标索引来访问元组中的值

tup1 = ('cxy', 'chemistry', 2004, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
 
print "tup1[0]: ", tup1[0] # tup1[0]:  cxy
print "tup2[1:5]: ", tup2[1:5] # tup2[1:5]:  (2, 3, 4, 5)

查找元组

  • 使用inin not操作符能够判定某个元素是否在元组中存在
a = (1, 2, 3, 4)
print(1 in a)       # True
print(11 in a)      # False
print(1 not in a)   # False
print(11 not in a)  # True
  • 使用index方法也可以判定某个元素是否在元组中存在
    如果待查找元素在元组中,则返回该元素的下标,否则会抛异常
a = (1, 2, 3, 4)
print(a.index(3))  # 2
# print(a.index(10))  # 不存在,抛异常

切片操作

元组支持切片操作,可以提取子元组。切片的语法为 元组[开始:结束:步长],其中 开始 结束 是索引,步长表示元素间的间隔

tup = (1, 2, 3, 4, 5)
print(tup[1:4])  # (2, 3, 4)
print(tup[:3])   # (1, 2, 3)
print(tup[::2])  # (1, 3, 5)

元组方法

元组提供了两个内置方法:

tup.count(x)返回元素 x 在元组中出现的次数。
tup.index(x)返回元素 x 在元组中第一次出现的索引。

tup = (1, 2, 3, 2, 4, 2)
print(tup.count(2))  # 3
print(tup.index(3))  # 2

与列表的比较

  • 不可修改的:元组是不可修改的,而列表是可修改的
  • 性能:元组的性能通常比列表好,因为它们不需要额外的内存开销
  • 功能:列表有更多的方法和操作符,例如 append()、remove() 等

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

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

相关文章

如何在 MySQL 中实现数据压缩

如何在 MySQL 中实现数据压缩 在 MySQL 数据库中&#xff0c;数据压缩可以帮助节省存储空间和提高数据传输效率。本篇文章我就一起来看看关于MySQL数据压缩的相关内容。 一、为什么需要数据压缩 随着数据量的不断增长&#xff0c;数据库的存储空间需求也在不断增加。数据压缩…

【Blender Python】1.概述和基础使用

概述 众所周知&#xff0c;Blender是一款开源免费的3D建模软件&#xff08;当然不限于3D建模&#xff09;。在Blender中&#xff0c;可以使用其内置的Python解释器执行Python代码&#xff0c;用于程序化的生成网格以及其他内容。你可以基于此创建Blender插件。 这个系列就是快…

gets和puts

今天我们来学习一组新的函数 gets和puts&#xff0c;它们分别对应的是scanf和printf&#xff0c;但在功能和其它方面有着一些差异 1.gets函数 1.char*gets(char*str); 函数功能&#xff1a;简单来说就像上面的格式一样&#xff0c;给他一个地址&#xff08;送快递总是要留一个…

Omron/TCP 通信过程

1. 首先 TCP 三次握手 2. 客户端向服务器申请节点地址 客户端向服务器发送一个包含Client Node Address字段的数据包 申请节点地址。由于客户端申请的时候还没有节点地址&#xff0c;因此该字段被置为0x00000000。 3. 服务器向客户端确认收到申请 服务器向客户端发送一个确认…

SQL第12课挑战题

1. 返回customers表中的顾客名称&#xff08;cust_name)和Orders表中的相关订单号&#xff08;order_num)&#xff0c;并按顾客名称再按订单号对结果进行排序。实际上是尝试两次&#xff0c;一次使用简单的等联结语法&#xff0c;一次使用inner join. 2. 让上一题变得更有用一些…

【算法篇】回溯算法类(2)(笔记)

目录 一、LeetCode 题目 1. 子集II 2. 递增子序列 3. 全排列 4. 全排列 II 5. 重新安排行程 6. N皇后 7. 解数独 二、题目思路整理 一、LeetCode 题目 1. 子集II https://leetcode.cn/problems/subsets-ii/description/https://leetcode.cn/problems/subsets-ii/des…

Spring Cloud Netflix Eureka 注册中心讲解和案例示范

在微服务架构中&#xff0c;服务的发现和注册是至关重要的一环。Netflix Eureka 是一个在云端设计的服务注册与发现系统。它允许各个微服务将自身注册到注册中心&#xff0c;并在需要时发现其他服务&#xff0c;从而实现客户端负载均衡、服务容错以及动态扩展。本文将深入分析 …

【Vue】vue-admin-template项目搭建

准备 node环境 node&#xff1a;v16.12.0npm&#xff1a;8.1.0 vue-element-admin下载 官网&#xff1a;https://panjiachen.github.io/vue-element-admin-site/guide/ 我这边下载的是4.4.0版本的&#xff0c;使用其他版本可能会因为所需要的node和npm版本过低或过高导致异常…

C++/CLI编程-属性property的封装实现

1.前言 上一篇博文中提到过C/CLI典型使用场景之一是为native C编写的算法封装接口&#xff0c;进而在C#项目中调用。一种典型的应用是作为Wrapper封装层来封装C库的类和接口、做C/C#类型的转换&#xff0c;然后在C#应用程序中调用&#xff0c;开发便捷易用的应用程序。 C/CLI编…

Bellman-Ford算法和SPFA算法

Bellman-Ford算法 能够处理存在负边权的情况。 算法时间复杂度:O(n*m)&#xff0c;n是顶点数&#xff0c;m是边数。 算法实现: 设s为起点&#xff0c;dis[v]即为s到v的最短距离&#xff0c;pre[v]为v前驱。w[j]是边j的长度&#xff0c;且j连接u、v。 dis[s] 0;dis[v] 0x3…

(Linux驱动学习 - 5).Linux 下 DHT11 温湿度传感器驱动编写

DHT11的通信协议是单总线协议&#xff0c;可以用之前学习的pinctl和gpio子系统完成某IO引脚上数据的读与写。 一.在设备树下添加dht11的设备结点 1.流程图 2.设备树代码 &#xff08;1&#xff09;.在设备树的 iomuxc结点下添加 pinctl_dht11 &#xff08;2&#xff09;.在根…

探索大型语言模型在文化常识方面的理解能力与局限性

介绍 论文地址&#xff1a;https://arxiv.org/pdf/2405.04655v1 近年来&#xff0c;大型语言模型&#xff08;LLM&#xff09;不仅被广泛应用于各个领域&#xff0c;而且通过大量的基准评估&#xff0c;证明它们能够理解人类所拥有的常识&#xff08;Commonsense&#xff09;…

FLUX的ID保持项目也来了! 字节开源PuLID-FLUX-v0.9.0,开启一致性风格写真新纪元!

之前的文章已经和大家介绍过字节开源的ID保持项目PuLID。随着FLUX模型的发布&#xff0c;PuLID也开源了 FLUX 版本的模型&#xff0c;不得不说FLUX的强大&#xff0c;两个月生态就赶上了SDXL。这次新发布PuLID-FLUX-v0.9.0模型&#xff0c;它为FLUX.1-dev提供了无需调整的ID定制…

简单部署vue+springboot项目

vue 参考博客 先将vue项目打包 npm run build 再创建项目文件夹front,在front中新建nginx.conf server {listen 80;server_name localhost;# 请求体的大小限制client_max_body_size 50m;# 日志文件存放地址access_log /var/log/nginx/host.access.log main;error…

嵌入式知识点复习(一)

国庆倒数第二天&#xff0c;进行嵌入式课堂测试的复习&#xff1a; 第一章 绪论 1.1 嵌入式系统的概念 嵌入式系统定义 嵌入式系统定位 嵌入式系统形式 嵌入式系统三要素 嵌入式系统与桌面通用系统的区别 1.2 嵌入式系统的发展历程 微处理器的演进历史 单片机的演进历史 …

学习使用Cube软件

一、点亮LED灯 1、新建项目 File → New → STM32 Project搜索芯片信号项目名称 弹窗点击Yes 2、点亮LED 配置GPIO为输出模式 细化配置 保存&#xff08;ctrl S&#xff09;自动生成代码 手动生成代码 选择跳转到代码页面

【d60】【Java】【力扣】509. 斐波那契数

思路 要做的问题&#xff1a;求F&#xff08;n&#xff09;, F&#xff08;n&#xff09;就等于F(n-1)F(n-2)&#xff0c;要把这个F(n-1)F(n-2)当作常量&#xff0c;已经得到的值&#xff0c; 结束条件&#xff1a;如果是第1 第2 个数字的时候&#xff0c;没有n-1和n-2,所以…

系统设计,如何设计一个秒杀功能

需要解决的问题 瞬时流量的承接防止超卖预防黑产避免对正常服务的影响兜底方法 前端设计 利用 CDN 缓存静态资源&#xff0c;减轻服务器的压力在前端随机限流按钮防抖&#xff0c;防止用户重复点击 后端设计 Nginx 做统一接入&#xff0c;进行负载均衡与限流用 sentinel 等…

Kron Reduction消去法如何操作,矩阵推导过程

三阶矩阵消去单节点 在电力系统中,母线上的电流注入始终为0,这样的节点可以通过一定的方法消除。以三节点为例,假设注入节点3的电流为0,则: [ I 1 I 2 I 3 ] = [ I 1 I 2 0 ] = [ Y 11 Y 12 Y 13 Y 21 Y 22 Y 23 Y 31 Y 32 Y 33 ] [ V 1 V 2 V 3 ] \left[\begin{array}{…