文章目录

1、元组的基本知识

2、元组的长度

3、访问元组

4、解包元组

5、星号的使用

元组的基本知识

元组的理解

元组用于在单个变量中存储多个项目,元组(Tuple)是python中用于存储数据集合的四种内置数据类型之一,其余三个分别是List(列表)、Set(集合)和Dictionary(字典),它们具有不同的性质和用法,而元组是有序且不可更改的集合,在python中,元组是由圆括号()编写的,形式见下图

x = ('晴天','阴天','雨天')

元组的认识

在讲列表的时候,就提到过列表不能完全理解为集合,因为不满足互异性,那么元组是不是也是不能完全理解成集合呢?

x = ('晴天','阴天','雨天','晴天')
y = (1,1,2,3,4,2)
print(type(x))
print(type(y))

执行结果

这里我们不难看出元组的项是允许重复项目的,同时元组的项还是有序的、不可更改的

一项元组

当元组中只有一项时,情况就有点不一样了

x = (1)
y = ('晴天')
z = (['晴天'])
h = ('晴天',)
print(type(x))
print(type(y))
print(type(z))
print(type(h))

执行结果

这里我们都是用圆括号(),但是当元组中只有一项时,显示的却是数据所对应的类型,并非元组,所以当只有一项时,想要数据类型是元组就要加上逗号

数据类型

元组中的数据类型可以是任何数据类型:整形、字符串和布尔数据类型

x = (1,2,3)
y = ('晴天','阴天','雨天')
z = (True,False)
print(type(x))
print(type(y))
print(type(z))

执行结果

元组还可以包含不同的数据类型,如下图

x = (1,'晴天',True)
print(type(x))

执行结果

这里我们创建了一个元组,这个元组中包含了整数、字符串和布尔值

我们还可以用tuple()函数来创建元组

x = tuple((1,2,3,4))
y = tuple(('晴天','阴天','雨天'))
z = tuple((True,False))
print(type(x))
print(type(y))
print(type(z))

执行结果

元组长度

当我们想要确定元组有多少项时,元组中的项少的时候,我们可以一个一个的数出来,但是,当元组中的项多的时候,这种方法就显得很慢了,这时,我们就可以使用len()函数来获取元组中的项数(之前就讲了len()函数可以获取字符串、列表的长度)

x = ('晴天','阴天','雨天','晴天')
y = (1,1,2,3,4,2)
print(len(x))
print(len(y))

执行结果

这里还是再提一下,元组的项是允许重复项目的(不要完全理解成集合)

访问元组

导出元组值

元组项是有序的、不可更改的和允许重复值。元组被索引时,第一项索引为[0],第二项索引为[1],以此类推下去

一、正常索引

1、单个索引

x = ('晴天','阴天','雨天')
print(type(x))
print(x[0])
print(x[1])
print(x[2])

执行结果

元组索引的格式是元组赋给的变量[索引项的位置]

2、整个索引

for循环

x = ('晴天','阴天','雨天')
print(type(x))
for i in x:print(i)

执行结果

这里的第三句语句就是把在元组中的i都打印出来(i可以理解成元组里的每一个元素)

我们通过运用for循环就可以达到我们的目的,将整个元组都索引出来

while循环

x = ('晴天','阴天','雨天','下雪天','雷雨天')
i = 0
while i<len(x):print(x[i])i = i+1

执行结果

还可以通过遍历索引号来达到目的

我们可以使用range()和len()函数创建可迭代对象

x = ('晴天','阴天','雨天','下雪天','雷雨天')
for i in range(len(x)):print(x[i])

执行结果

二、负索引

负索引意味着从右往左来索引,-1是最后一项(不是0),-2是倒数第二项,以此类推

x = ('晴天','阴天','雨天')
print(type(x))
print(x[-1])
print(x[-2])
print(x[-3])

执行结果

三、索引范围

我们可以通过指定范围的开始和结束位置来指定索引范围。指定范围时,执行结果是具有指定项的新元组

x = ('晴天','阴天','雨天')
print(x[:1])
print(x[1:2])
print(x[:2])
print(x[-2:-1])
print(x[-2:])

执行结果

这里很明显的看出执行结果是一个新的元组,为什么要带逗号?这就是之前讲到的一项元组的知识。同时这里的索引范围和字符串、列表中讲过的知识差不多,同样满足包左不包右的原则并且冒号左边要小于右边

检查元组值是否存在

当我们想要确定元组中是否存在指定项目时,我们可以使用in关键字

x = ('晴天','阴天','雨天')
if '晴天' in x:print('晴天在元组中')

执行结果

这里我们通过使用if语句来检查元组中的值是否存在

更新元组

元组是不可更改的,这就意味着一旦创建了一个元组,我们就无法更改元组中的项目(添加或是删除项目),但是解决方法还是有的,比如:在上一次的基础训练中,我们讲到了列表,提到了列表可以随时添加和删除其中的元素,那么思路就来了,我们可以先把元组转换成列表,在列表中修改,最后将修改完成的列表再转换为元组

一、替换

x = ('晴天','阴天','雨天')
x = list(x)
print(type(x))
x[0] = '雷雨天'
x[1] = '下雪天'
x[-1] = '晴天'
print(x)
x = tuple(x)
print(type(x))
print(x)

执行结果

这里我们就先把元组转换成了列表,在列表中完成替换,之后将替换完成的列表转换成元组

二、添加项目

由于元组是不可变的,它没有内置的append()函数,但还是有其它的办法可以向元组中添加项

1、方法一

我们可以借鉴上面的方法,先将不可变的元组转换成可变的列表,在列表中,我们添加我们所想添加的项,添加完之后,将列表转换成元组

x = ('晴天','阴天','雨天')
x = list(x)
print(type(x))
x.append('雷雨天')
x.insert(1,'下雪天')
print(x)
x = tuple(x)
print(type(x))
print(x)

执行结果

这样就达到了我们的目的

2、方法二

我们可以向元组中添加一个元组,如果我们想要添加一个或多个项目,我们可以将想要添加的项目创建成一个元组,并将其添加到现有元组中

x1 = ('晴天','阴天','雨天')
x2 = ('下雪天',)
x3 = ('雷雨天','雾霾天')
x1 = x1 + x2 + x3
print(type(x1))
print(x1)

执行结果

注意:一项元组需要加逗号,否则不会识别为元组

三、删除项目

由于元组是不可变的,我们不能删除元组中的项目,但还是有其它的办法可以删除元组中的项目,我们可以借鉴上面的方法,先将不可变的元组转换成可变的列表,在列表中,我们删除我们所想删除的项,删除完之后,将列表转换成元组

x = ('晴天','阴天','雨天')
x = list(x)
print(type(x))
x.remove('晴天')
print(x)
x = tuple(x)
print(type(x))
print(x)

执行结果

这样就达到了我们的目的

如果我们想要删除元组的话,我们可以采用del函数

x = ('晴天','阴天','雨天')
del x
print(x)

执行结果

这里的报错就说明元组已经被删除了

四、合并元组

当我们想要将两个元组合并在一起的时候,最简单的方法之一就是使用+运算符

x1 = ('晴天','阴天','雨天')
x2 = ('雷雨天','雾霾天')
x3 = (1,2,3)
x1 = x1+x2+x3
print(x1)

执行结果

这样三个元组就合并了起来

如果要将元组内容乘以给定次数,我们可以使用*运算符

x = ('晴天','阴天','雨天')
x = x*3
print(x)

执行结果

当我们想要知道元组中的项目出现了几次时,我们可以采用count()函数

x = ('晴天','阴天','雨天')
x = x*3
y = x.count('晴天')
print(x)
print(y)

执行结果

这里的3就说明晴天在元组中出现了3次

当我们想要找出指定值的位置(第一次出现的位置)时,我们可以采用index()函数

x = ('晴天','阴天','雨天')
x = x*3
y = x.count('晴天')
z = x.index('晴天')
print(x)
print(y)
print(z)

执行结果

这里的0就是指第一项的位置

解包元组

当我们创建了一个元组之后,我们通常会为其分配值,这个操作被称为“打包”元组

x = ('晴天','阴天','雨天')
print(type(x))
print(x)

执行结果

这个操作叫做包装元组

在python中,我们也可以将值提取回变量中,这个操作被称为“解包”元组

x = ('晴天','阴天','雨天')
(sun,cloud,wind) = x
print(sun)
print(cloud)
print(wind)

执行结果

这里第二句的意思就是把元组中的3个项目依次赋值给左边元组的三个项目

星号(*)的使用

当我们遇到变量的数量要小于值的数量的时,我们可以在变量名中添加一个*号,值将作为列表分配给变量

x = ('晴天','阴天','雨天')
(sun,*cloud) = x
print(sun)
print(cloud)

执行结果

注意:*是在变量名的左边

如果*被添加到另一个变量名而不是最后一个变量名,python将为变量赋值,直到剩余的值的数量与剩余的变量数量匹配

x = ('晴天','阴天','雨天','下雪天','雷雨天')
(sun,*cloud,wind) = x
print(sun)
print(cloud)
print(wind)

执行结果

综上:我介绍了元组的相关知识和操作,元组和列表,希望大家可以区分开来一个创建是用圆括号而另一个的创建是使用中括号,大家看完后一定要去亲自去敲一敲,这样更有利于自己的学习。

以上就是python基础训练—元组的全部内容

python基础训练—元组相关推荐

  1. python基础训练—列表

    文章目录 1.列表的基本知识 2.创建列表 3.列表长度 4.访问列表 5.列表排序 6.python集合(数组) 列表的基本知识 列表的理解 列表(list)是python中内置的一种数据类型,li ...

  2. python基础训练—集合

    文章目录 1.集合的基本知识 2.访问集合 3.集合连接 集合的基本知识 集合的理解 集合(set)是一个无序的不重复的元素序列,集合(set)也是python中内置的一种数据类型,形式见下图 x = ...

  3. python基础训练—字典

    文章目录 1.字典的基本知识 2.创建字典 3.字典长度 4.访问字典 5.检查字典中是否存在指定的键 6.嵌套字典 7.python中的四种集合数据类型 字典的基本知识 字典的理解 字典(dicti ...

  4. python 把元组转为列表

    python 把元组转为列表的方法是在元组前面添加list ,与 python 的类型转换方法一样,具体如下 list_a = (1, 9, 10, 6) print(list_a) # 打印结果 ( ...

  5. python基础---元组、字典、函数、文件、异常

    文章目录 python基础---元组.字典.函数.文件.异常 Tuple(元组) 常用操作 dict(字典) 函数 文件 异常 python基础-元组.字典.函数.文件.异常 Tuple(元组) tu ...

  6. python中元组的使用_Python当中tuple元组的使用

    Python Python开发 Python语言 Python当中tuple元组的使用 python当中元组的使用比起list列表来说就简单多了!因为tuple一般是不能进行修改的,一旦进行定义则无法 ...

  7. python中元组_理解python中的元组

    理解 python 中的元组 引言 在 Python 中元组是这样的: 元组是是这样一种数据结构:不变的或者不可改变的(简单来说不能重新赋值) .元素的有序序列.因为元组是 不变的,所以他的数值是不能 ...

  8. Python列表,元组,字典的区别

    Python列表,元组,字典的区别: 1.元组是不可变的, 而列表.字典是可变的.元组是不可变对象,对象一旦生成,它的值将不能更改:列表是可变对象,对象生成后,可以对其元素进行更改.添加.删除.清空. ...

  9. Python中元组的介绍以及常见操作

    1.元组的介绍 Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 元组的格式: tup=( ...

最新文章

  1. 几种常见信号波形变换电路
  2. 利用自己的电脑设置web服务器建网站_win7系统篇,win7系统利用iis搭建web服务器实现信息浏览资源共享的操作方法...
  3. cglib中Enhancer的简单使用
  4. [云炬ThinkPython阅读笔记]1.3 第一个程序
  5. mysql 用户 类别_从mysql里读取用户类型
  6. 神奇的canvas——巧用 canvas 为图片添加水印
  7. pythond的执行原理_Python多进程原理与实现
  8. 微软.net framework工具集帮助
  9. 怎么隐藏li标签_抖音账号如何打标签-7天让抖音账号打上标签
  10. schedule()函数的调用时机(周期性调度)
  11. Linux中shell脚本获取当前工作目录
  12. 面试记录:冒泡排序都不会,大哥你会编程吗
  13. jq和js的关系_jquery与js的区别是什么?js与jquery的用法区别介绍
  14. 节点本地范围和链路本地范围_微服务链路追踪——skywalking
  15. 黑苹果VoodooHDA声卡驱动
  16. 2022保密教育线上培训考试 01
  17. 腾讯产品笔试策划+经验​
  18. linux网络打印机设置,linux下怎么使用网络打印机
  19. 基于Java的敬老院管理系统的设计和实现(论文+PPT+源码)
  20. 数据链路层的主要功能与服务

热门文章

  1. 参会记录|全国多媒体取证暨第二届多媒体智能安全学术研讨会(MAS‘2023)
  2. 如果不能产生价值,阅读便毫无意义
  3. 原创首发:JXMaker扫描助手 扫描图片并将多次扫描图像导出为PDF文档,全免费,开源
  4. 2021年质量员-设备方向-通用基础(质量员)考试总结及质量员-设备方向-通用基础(质量员)模拟考试题库
  5. AD18导出BOM清单报错
  6. 家庭自酿葡萄酒入门(转)
  7. 区间DP例题(持续更新)
  8. 大自然是最广阔的“感统训练室”,端午节带上孩子“趣”玩吧!
  9. dsp和通用计算机的区别,汽车dsp和功放区别
  10. C++刷题知识点总结2