python tuple是什么类型_Python的基本数据类型——Tuple

元组(Tulpe)是Python中另外的一种数据类型,和列表(List)一样也是一组有序对象的集合,大部分的属性和列表(List)一样,接下来我们来看看,Python中为什么会存在元组,以及他和列表(List)不一样的地方定义一个元组

a=(1,2,3,4)

print(type(a))

# 输出 tuple

b=(1,True,0,'Apple',[1,2,[1,3]])

print(type(b))

# 输出 tuple元组和列表的相同点和列表一样元素也可以通过索引和切片的方式访问元素

a=(1,True,0,'Apple',[1,2,[1,3]])

# 通过索引访问

print(a[2])

# 输出 0

print(a[-1])

# 输出 [1,2,[1,3]]

# 通过切片访问

print(a[0:2])

# 输出 (1,2)

print(a[:-1])

# 输出 (1, True, 0, 'Apple')通过 +、* 添加元素

a=(1,2,3)

a+=(4,5,6)

print(a)

# 输出 (1,2,3,4,5,6)

b=a*3

print(b)

# 输出 (1, 2, 3, 1, 2, 3, 1, 2, 3)同样适用于元组的一些内置函数

a=(1,2,3)

# 判断一个元素是否存在于元组中

print(1 in a)

# 输出 True

# 获取元组的长度

print(len(a))

# 输出 3

# 获取元组中最大元素

print(max(a))

# 输出 3

# 获取元组中最小元素

print(min(a))

# 输出 1

# 获取元组中元素的下标

print(a.index(3))

# 输出 2

# 获取元组中元素的个数

print(a.count(2))

# 输出 1

# 计算元组中元素的和

print(sum(a))元组和列表有什么区别

看到元组的定义和访问元素的方式,你可能会很困惑,别人家的语言都没这个数据类型,Python这不是找事吗?为什么要设计一个和列表一样属性的数据类型,老子是真学不动啦!先别急,你只需记住以下几点即可。列表定义的时候使用[ ],元组使用( )

列表可以改变的,但是元组不可变,也就是元组定义好以后我们不能修改里面的元素

能使用元组的尽量使用元组元组不能改变是什么意思

我们通过简单的代码演示一下数组的不可变性

a=(1,2,3,4,5)

a[0]=10

# 这个时候会抛出异常

Traceback (most recent call last):

File "", line 1, in

TypeError: 'tuple' object does not support item assignment

因为元组中的元素不能修改,所以元素的没有append( )、insert( )等修改方法删除元组

之前分享列表的时候提到删除列表的方法有很多,可以使用del、clear( )、remove( )、pop( ), 但是元组因为不能修改所以只能使用del清空元组,下面通过代码演示一下

a=(1,2,3,4)

# 删除元组

del a元组的一些坑定义一个元素的元组

# 定义一个元素的列表

print(type([1]))

# 输出 list

# 定义一个元素的元组

print(type((1)))

# 输出 int

# 因为( ) 在python中是数学运算符号

# 正确的做法是在元素后面添加一个逗号

print(type((1,)))

# 输出tuple元组中的元素‘可变’

前面一直说元组中的元素不能修改,下面我们来演示一下元组中的元素可以修改

a=(1,2,[3,4,5])

a[0]=10

# 会报错

a[-1][-1]=10

print(a)

# 输出 (1,2,[3,4,10])

上面的案例没有报错,而且还修改成功了,你可能现在很困惑、元素到底能不能修改。

从表面上看,元组中的元素确实被修改了,但其实修改的不是元组中的元素,而是[3,4,5]这个列表中的元素。就好比元组中有三个盒子,分别是1、2、[3,4,5],这个三个盒子的位置不能变,但是这个盒子里装的东西可以变,你可以把这个盒子里的东西拿出来,你也可以往这个盒子装一头大象,但是不论你往盒子装什么,这个盒子还是之前的盒子,也就是元组中元素的指向没有发生变化。

总结:本篇文章主要分享了怎么定义一个元组、元组与列表的相同和不同之处,重点掌握元组的不可变性

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值