当前位置: 首页 > 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')
    
http://www.lryc.cn/news/320671.html

相关文章:

  • Chrome历史版本下载地址:Google Chrome Older Versions Download (Windows, Linux Mac)
  • ROS2纯跟踪实现(C++)
  • uniapp微信小程序随机生成canvas-id报错?
  • 爬虫 Day2
  • 达梦数据库SQL
  • python教程——把视频转成gif
  • 深入浅出Go的`encoding/xml`库:实战开发指南
  • 深度学习之扩散模型(Diffusion model)
  • Tomcat Session ID---会话保持
  • Session会话绑定
  • win7、win10、win11 系统能安装的.net framework 版本以
  • RediSearch比Es搜索还快的搜索引擎
  • mybatis-plus 的saveBatch性能分析
  • python异常:pythonIOError异常python打开文件异常
  • 电话机器人语音识别用哪家更好精准度更高。
  • 【Unity动画】Unity如何导入序列帧动画(GIF)
  • uniapp APP 上传文件
  • arcgis数据导出到excel
  • 吴恩达深度学习环境本地化构建wsl+docker+tensorflow+cuda
  • R语言:microeco:一个用于微生物群落生态学数据挖掘的R包:第七:trans_network class
  • ubuntu下在vscode中配置matplotlibcpp
  • Vue面试题,背就完事了
  • centos创建并运行一个redis容器 并支持数据持久化
  • nvm安装和使用保姆级教程(详细)
  • 跳绳计数,YOLOV8POSE
  • 阿里云ecs服务器配置反向代理上传图片
  • 免费阅读篇 | 芒果YOLOv8改进110:注意力机制GAM:用于保留信息以增强渠道空间互动
  • GetLastError()返回值及含义
  • k8s admin 用户生成token
  • 【vscode】vscode重命名变量后多了很多空白行