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')
    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Day69:WEB攻防-Java安全JWT攻防Swagger自动化算法签名密匙Druid泄漏

目录 Java安全-Druid监控-未授权访问&信息泄漏 黑盒发现 白盒发现 攻击点 Java安全-Swagger接口-导入&联动批量测试 黑盒发现 白盒发现 自动化发包测试 自动化漏洞测试 Java安全-JWT令牌-空算法&未签名&密匙提取 识别 JWT 方式一&#xff1a;人工识…

web渗透测试漏洞复现:Elasticsearch未授权漏洞复现

web渗透测试漏洞复现 Elasticsearch未授权漏洞复现Elasticsearch简介Elasticsearch复现Elasticsearch漏洞修复和加固措施 Elasticsearch未授权漏洞复现 Elasticsearch简介 Elasticsearch 是一款 Java 编写的企业级搜索服务&#xff0c;它以分布式多用户能力和全文搜索引擎为特…

使用jenkins-pipeline进行利用项目文件自动化部署到k8s上

Discard old builds:丢弃旧的构建,目的是管理存储空间、提升性能以及保持环境整洁 Do not allow concurrent builds: 禁止并发构建是指同一时间内只允许一个构建任务执行,避免多个构建同时运行可能带来的问题 Do not allow the pipeline to resume if the controller resta…

RPC学习笔记一

什么是RPC RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;是一种用于实现分布式系统中不同计算机或进程之间进行通信和调用的技术和模式。 在传统的过程调用中&#xff0c;当一个程序需要调用另一个程序的函数或方法时&#xff0c;通常是在同一台…

ChatGPT4的Dalle-3 生成电影海报及升级教程

引言 首先DALL E3首先需要升级为ChatGPT4才能使用&#xff0c;接下来从以下几个方面进行介绍&#xff1a; 一、ChatGPT4中的DALL E3 的电影海报二、ChatGPT4下的DALL E3的实例三、ChatGPT4的升级教程 一、ChatGPT4中的DALL E3 的电影海报 DALLE 3可以直接在画面中识别和生成…

【Qt图形界面引擎(一)】:第一个Qt程序

跨平台图形界面引擎&#xff0c;接口简单&#xff0c;易上手&#xff0c;一定程度简化内存。 Qt发展史 1991年由Qt Company开发的跨平台C图形用户界面应用程序开发框架2008年&#xff0c;Qt Company科技被诺基亚公司收购&#xff0c;Qt也因此成为诺基亚旗下的编程语言工具2012…

【vue elementUI】修改el-dropdown样式

实现效果如下&#xff1a; 代码如下&#xff1a; <el-dropdown trigger"click" command"handleCommand" active-text-color"#606266"><span class"product-card">{{getCategoryName(categoryId)}}</span><el-dro…

一文解决内网传外网sftp没跑满带宽问题

随着企业网络的日益复杂&#xff0c;内部网络与外部网络之间的文件传输需求不断增长。然而&#xff0c;标准的SFTP协议在跨网络传输时常常无法充分运用可用带宽&#xff0c;导致传输效率不尽人意。本文旨在探讨影响内网至外网SFTP传输效率的因素&#xff0c;并结合一种高效的解…

Uibot (RPA设计软件)财务会计Web应用自动化(批量开票机器人)

Uibot (RPA设计软件&#xff09;Mage AI智能识别&#xff08;发票识别&#xff09;———机器人的小项目友友们可以参考小北的课前材料五博客~ (本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~&#xff09; 紧接着小北的前两篇博客&#xff0c;友友们我们…

Vue+SpringBoot打造数据可视化的智慧河南大屏

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 数据模块 A4.2 数据模块 B4.3 数据模块 C4.4 数据模块 D4.5 数据模块 E 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的数据可视化的智慧河南大屏&#xff0c;包含了GDP、…

深入解析:在 Node.js 中删除文件的正确姿势

引言 在 Node.js 中处理文件尤其是移除文件&#xff0c;对于维护高效应用程序至关重要。储存和秩序当道的今天&#xff0c;删除不必要或冗余的文件能力显得尤为关键。本文深入探讨你会想要使用这个强大功能的时刻和原因&#xff0c;并通过各种案例展示了这个概念&#xff0c;同…

基于Matlab的视频人面检测识别,Matalb实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

HTML静态网页成品作业(HTML+CSS)——个人介绍网页(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

sqllab第四十七关通关笔记

知识点&#xff1a; 错误注入字符型注入order by 位置注入 报错注入时间盲注 通过测试发现是一个字符型注入 构造payload:sort2 报错了 构造payload:sort2 不提示报错了 说明这里存在字符型注入 尝试进行单引号绕过 构造payload:sort2and 11 …

解锁数据可视化新境界:山海鲸可视化免费编辑与组件探索

作为一名长期使用山海鲸可视化的资深用户&#xff0c;我在数据可视化看板的制作过程中&#xff0c;深刻感受到了这款软件带来的便捷与高效。今天&#xff0c;我想与大家分享一些我在使用山海鲸可视化制作数据可视化看板时的经验&#xff0c;给对这款产品同样感兴趣的朋友同行一…

Mammoth——从docx文档提取html

1. Mammoth——提取word文档 Github: GitHub - mwilliamson/mammoth.js: Convert Word documents (.docx files) to HTML NPM: mammoth - npm CDN: https://cdn.jsdelivr.net/npm/mammoth1.4.8/mammoth.browser.min.js * 优缺点&#xff1a; 缺点&#xff1a;只能转换.docx文…

docker小白第十三天-compose容器编排

docker-compose容器编排 Docker-Compose是Docker官方的开源项目&#xff0c;负责实现对Docker容器集群的快速编排。Compose是Docker公司推出的一个工具软件&#xff0c;可以管理多个Docker容器组成一个应用。你需要定义一个YAML格式的配置文件docker-compose.yml&#xff0c;写…

将main打包成jar;idea打包main为jar包运行

将main打包成jar&#xff1b;idea打包main为jar包运行 适用场景&#xff1a;可以封装一些小工具。 配置jar Maven中添加 <packaging>jar</packaging>将其打包为jar。 设置运行入口main 编译jar 看到jar输出 运行效果&#xff1a; 其中&#xff0c;三方依赖也被…

Linux docker3--数据卷-nginx配置示例

一、因为docker部署服务都是以最小的代价部署&#xff0c;所以通常在容器内部很多依赖和命令无法执行。进入容器修改配置的操作也比较麻烦。本例介绍的数据卷作用就是将容器内的配置和宿主机文件打通&#xff0c;之后修改宿主机的配置文件就相当于修改了docker进程的配置文件&a…