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

Python基础(六)之数值类型元组

Python基础(六)之数值类型元组

Python_logo

1、简介

元组: 在Python中是内置的数据结构之一,是一个不可变的序列,切可以是任何类型数据。元组的元素放在()小括号内。一般我们希望数据不改变的时候使用

不可变与可变的区别:

  • 不可变序列:字符串、元组(没有增删改操作)
  • 可变序列: 列表、字典(可以对序列执行增删改操作,对象的地址不发生变化

2、 创建元组

2.1、直接创建

格式: 元组名称 = (元素1, 元素2, 元素3) 或者 元组名称 = 元素1, 元素2, 元素3

空原则: 元组名称 = () 或者 元组名称 = tuple()

特殊的元组: 元组名称 = (元素1, )

s_tuple = (1, 2, 3, 4, 5)
print('s_tuple数据类型:', type(s_tuple))
print('s_tuple数据:', s_tuple)
s_tuple2 = 1, 2, 3, 4, 5
print('s_tuple2数据类型:', type(s_tuple2))
print('s_tuple2数据:', s_tuple2)'''s_tuple数据类型: <class 'tuple'>
s_tuple数据: (1, 2, 3, 4, 5)
s_tuple2数据类型: <class 'tuple'>
s_tuple2数据: (1, 2, 3, 4, 5)
'''

2.2、使用内置函数tuple()

s_tuple = tuple(('P', 'y', 't', 'h', 'o', 'n'))
print('s_tuple数据类型:', type(s_tuple))
print('s_tuple数据:', s_tuple)'''
s_tuple数据类型: <class 'tuple'>
s_tuple数据: ('P', 'y', 't', 'h', 'o', 'n')
'''

2.3、 将迭代系列转化为元组

s = "Python"
s_list = list(s)
s_tuple = tuple(s)
print(s_tuple) # ('P', 'y', 't', 'h', 'o', 'n')
s_list_to_tuple = tuple(s_list)
print(s_list_to_tuple) # ('P', 'y', 't', 'h', 'o', 'n')

【注】

  • 只包含一个元素的元组需要使用逗号和小括号来表示
  • 若没有添加逗号,Python会默认括号本身内数据本身的数据类型
s_tuple = ('str') 
print('错误的元组创建方式:', type(s_tuple))# 错误的元组创建方式: <class 'str'>s_tuple = ('str',) 
print('正确的元组创建方式:', type(s_tuple))
# 正确的元组创建方式: <class 'tuple'>

3、遍历元组

在Python 中使用for循环遍历元组的元素

s_tuple = (1, 2, 3, 4, 5)
for el in s_tuple:print(el)'''
1
2
3
4
5
'''s_tuple_empty = ()
for el in s_tuple_empty:print(el)

4、 元组解包

将元组tuple中的元素赋值给变量

s_tuple = ('P', 'y', 't', 'h', 'o', 'n')
a, b, c, d, e, f = s_tuple
print('a =', a)
print('b =', b)
print('c =', c)
print('d =', d)
print('e =', e)
print('f =', f)
'''
a = P
b = y
c = t
d = h
e = o
f = n
'''s_tuple = ('P', 'y', 't', 'h', 'o', 'n')
a, b, c, d, e, f, *g = s_tuple
print('a =', a)
print('b =', b)
print('c =', c)
print('d =', d)
print('e =', e)
print('f =', f)
print('g =', g)
'''
a = P
b = y
c = t
d = h
e = o
f = n
g = []
'''s_tuple = ('P', 'y', 't', 'h', 'o', 'n')
*a, b, c= s_tuple
print('a =', a)
print('b =', b)
print('c =', c)
'''
a = P
b = ['y', 't', 'h', 'o']
c = n
'''

【注】

  • 元组解包的时候前面的变量数量必须与元组的元素数量一致。
  • 若变量的数量与元组中元素的数量不一致时,则在某个变量的前面加一个* ,这样会将多余的变量以列表的格式转化到该变量中

5、 检查元素是否在元组中

使用 in 或者 not in

s_tuple = ('P', 'y', 't', 'h', 'o', 'n')
print('Hello' in s_tuple)  # False
print('Hello' not in s_tuple) # True
print('t' in s_tuple) # True
print('t' not in s_tuple) # False

6、 查询元组

元组没有增删改操作,但可以进行查询

6.1 index() 从元组中找出某个值第一个匹配项的索引

s_tuple = ('P', 'y', 't', 'h', 'o', 'n')
print(s_tuple.index('P')) # 0
print(s_tuple.index('hello')) # 报出错误 ValueError: tuple.index(x): x not in tuple

6.2、count() 统计元组中某个元素出现的次数

s_tuple = ('H', 'e', 'l', 'l', 'o')
print(s_tuple.count('l')) # 2
print(s_tuple.count('h')) # 0

7、 删除元组

元组虽然不能新增和修改、且删除单独的元素,但可以将元组整体全部删除

s_tuple = ('H', 'e', 'l', 'l', 'o')
del s_tuple
print(s_tuple) # NameError: name 's_tuple' is not defined. Did you mean: 'tuple'?

8、 其他操作

8.1、 获取元组的长度

s_tuple = ('H', 'e', 'l', 'l', 'o')
print(len(s_tuple)) # 5

8.2、 获取元组的最大值或最小值

s_tuple = ('H', 'e', 'l', 'l', 'o')
print(max(s_tuple)) # o
print(min(s_tuple)) # H

9、 元组与列表对比

  • 列表是可变的,创建完成后,可以对列表进行增删改查操作。

  • 元组是不可变的,创建完成后,其内容和大小均不可发生改变

  • 元组虽然不可变,但可以可以将两个元组合并成一个新的元组,切不需要为新原则分配额外的空间

    s_tuple1 = ('P', 'y', 't')
    s_tuple2 = ('h', 'o', 'n')
    print(s_tuple1 + s_tuple2)
    # ('P', 'y', 't', 'h', 'o', 'n')
    

相关文章:

Python基础(六)之数值类型元组

Python基础&#xff08;六&#xff09;之数值类型元组 1、简介 元组&#xff1a; 在Python中是内置的数据结构之一&#xff0c;是一个不可变的序列,切可以是任何类型数据。元组的元素放在&#xff08;&#xff09;小括号内。一般我们希望数据不改变的时候使用 不可变与可变的…...

Chrome历史版本下载地址:Google Chrome Older Versions Download (Windows, Linux Mac)

最近升级到最新版本Chrome后发现页面居然显示错乱,是在无语, 打算退回原来的版本, 又发现官方只提供最新的版本下载, 为了解决这个问题所有收集了Chrome历史版本的下载地址分享给大家. Google Chrome Windows version 32-bit VersionSizeDate104.0.5112.10279.68 MB2022-05-30…...

ROS2纯跟踪实现(C++)

#include <tf2_ros/buffer.h> #include <tf2_ros/transform_broadcaster.h> #include <tf2_ros/transform_listener.h>#include <geometry_msgs/msg/transform_stamped.hpp> #include...

uniapp微信小程序随机生成canvas-id报错?

uniapp微信小程序随机生成canvas-id报错&#xff1f; 文章目录 uniapp微信小程序随机生成canvas-id报错&#xff1f;效果图遇到问题解决 场景&#xff1a; 子组件&#xff0c;在 mounted 绘制 canvas&#xff1b;App、H5端正常显示&#xff0c;微信小程序报错&#xff1b; 效…...

爬虫 Day2

resp.close()#关掉resp 一requests入门 &#xff08;一&#xff09; 用到的网页&#xff1a;豆瓣电影分类排行榜 - 喜剧片 import requestsurl "https://movie.douban.com/j/chart/top_list" #参数太长&#xff0c;重新封装参数 param {"type": "…...

达梦数据库SQL

达梦JSON函数技术文档 SQL中关键词处理 -- 必须要使用双引号包裹 select id,"comment" from t_cmp_rd_process;select id,"commit" from t_cmp_rd_gjj_eva;JSON_EXTRACT函数 -- party_sup_other_json 是包含JSON数据的列名。 -- $.content_abstract 是J…...

python教程——把视频转成gif

一、前言 很多网站提供视频转GIF的功能&#xff0c;但要么收费要么有广告&#xff0c;实际上可以通过python&#xff0c;几行代码就能够实现视频转gif。 二、使用方法 1安装必备库moviepy pip install moviepy -i https://pypi.tuna.tsinghua.edu.cn/simple 2. 写入代码 …...

深入浅出Go的`encoding/xml`库:实战开发指南

深入浅出Go的encoding/xml库&#xff1a;实战开发指南 引言基本概念XML简介Go语言中的XML处理结构体标签&#xff08;Struct Tags&#xff09; 解析XML数据使用xml.Unmarshal解析XML结构体标签详解处理常见解析问题 生成XML数据使用xml.Marshal生成XML使用xml.MarshalIndent优化…...

深度学习之扩散模型(Diffusion model)

代码解析&#xff1a;正向扩散过程和加噪演示 引言 这段代码实现了一个正向扩散过程和加噪演示的功能。通过生成一个特定形状的数据集&#xff0c;并在每个时间步长上应用正向扩散过程和加噪过程&#xff0c;最终展示了数据点在空间中的演变过程。 数据集生成 通过 make_swiss…...

Tomcat Session ID---会话保持

简单拓补图 一、负载均衡、反向代理 7-1nginx代理服务器配置 [rootdlnginx ~]#yum install epel-release.noarch -y ###安装额外源[rootdlnginx ~]#yum install nginx -y[rootdlnginx ~]#systemctl start nginx.service[rootdlnginx ~]#systemctl status nginx.service [ro…...

Session会话绑定

1.需求原因 用户的请求,登录的请求,经过负载均衡后落到后面的web服务器上,登录的状态/信息也会记录在web服务器上,就会导致不通的web服务器上,登录状态不统一,造成用户频繁需要登录 2.目标&#xff1a;如何实现会话保持/会话共享 方案一&#xff1a;登录状态写入cookie中.(wor…...

win7、win10、win11 系统能安装的.net framework 版本以

win7、win10、win11 系统能安装的.net framework 版本分别是多少&#xff1f;以及能安装的最高版本是多少&#xff1f; 以下是各Windows系统能够安装和支持的.NET Framework版本及其最高可安装版本的概述&#xff1a; Windows 7&#xff1a; 自带 .NET Framework 3.5.1&#x…...

RediSearch比Es搜索还快的搜索引擎

1、介绍 RediSearch是一个Redis模块&#xff0c;为Redis提供查询、二次索引和全文搜索。要使用RediSearch&#xff0c;首先要在Redis数据上声明索引。然后可以使用重新搜索查询语言来查询该数据。RedSearch使用压缩的反向索引进行快速索引&#xff0c;占用内存少。RedSearch索…...

mybatis-plus 的saveBatch性能分析

Mybatis-Plus 的批量保存saveBatch 性能分析 目录 Mybatis-Plus 的批量保存saveBatch 性能分析背景批量保存的使用方案循环插入使用PreparedStatement 预编译优点&#xff1a;缺点&#xff1a; Mybatis-Plus 的saveBatchMybatis-Plus实现真正的批量插入自定义sql注入器定义通用…...

python异常:pythonIOError异常python打开文件异常

1.python读取不存在的文件时&#xff0c;抛出异常 通过 open()方法以读“r”的方式打开一个 abc.txt 的文件&#xff08;该文件不存在&#xff09;&#xff0c;执行 open()打开一个不存在的文件时会抛 IOError 异常&#xff0c;通过 Python 所提供的 try...except...语句来接收…...

电话机器人语音识别用哪家更好精准度更高。

语音识别系统的选择取决于你的具体需求&#xff0c;包括但不限于识别精度、速度、易用性、价格等因素。以下是一些在语音识别领域表现较好的公司和产品&#xff1a; 科大讯飞&#xff1a;科大讯飞是中国最大的语音识别技术提供商之一&#xff0c;其语音识别技术被广泛应用于各…...

【Unity动画】Unity如何导入序列帧动画(GIF)

Unity 不支持GIF动画的直接播放&#xff0c;我们需要使用序列帧的方式 01准备好序列帧 02全部拖到Unity 仓库文件夹中 03全选修改成精灵模式Sprite 2D ,根据需要修改尺寸&#xff0c;点击Apply 04 创建一个空物体 拖动序列上去 然后全选所有序列帧&#xff0c;拖到这个空物体…...

uniapp APP 上传文件

/*** 上传文件*/uploadPhoneFile:function(callback,params {}) {let fileType [.pdf,.doc,.xlsx,.docx,.xls]// #ifdef APP-PLUSplus.io.chooseFile({title: 选择文件, filetypes: [doc, docx], // 允许的文件类型 multiple: false, // 是否允许多选 },(e)>{const tem…...

arcgis数据导出到excel

将arcgis属性数据导出到excel&#xff1a; 1&#xff09; 工具箱\系统工具箱\Conversion Tools.tbx\Excel\Excel 转表 2&#xff09;用excel打开导出的图层文件中后缀为.dbf的数据&#xff08;方便快捷&#xff0c;但是中文易乱码&#xff09;...

吴恩达深度学习环境本地化构建wsl+docker+tensorflow+cuda

Tensorflow2 on wsl using cuda 动机环境选择安装步骤1. WSL安装2. docker安装2.1 配置Docker Desktop2.2 WSL上的docker使用2.3 Docker Destop的登陆2.4 测试一下 3. 在WSL上安装CUDA3.1 Software list needed3.2 [CUDA Support for WSL 2](https://docs.nvidia.com/cuda/wsl-…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...