Python基础 day06--元组

tuple--元组

元组与字符串、列表有很多共同属性,像索引和切片,它们都是序列数据类型的两个基本组成,下面我们在学一种序列数据类型-----元组。

元组的基本操作

创建元组

Python中,元组(tuple)用一对小括号()表示,元组内的各元素以逗号分隔。栗子:

t = ()
print(type(t))
# 结果:<class 'tuple'>
t1 = ('兰博基尼', )
print(t1)
# 结果:('兰博基尼',)
print(type(t1))
# 结果:<class 'tuple'>

索引和切片

元组中索引和切片的用法跟列表和字符串类似,或者区范围内的值,后者可以指定在一段范围内,可以通过补偿没几个取一个:

t = ('奔驰','宝马','奥迪','布加迪威龙','五菱宏光','大众')
print(t[1])
# 结果:宝马
print(t[-1])
# 结果:五菱宏光
print(t[0:4])
# 结果:('奔驰', '宝马', '奥迪', '布加迪威龙')
print(t[::-1])
# 结果:('五菱宏光', '布加迪威龙', '奥迪', '宝马', '奔驰')
print(t[0:5:2])
# 结果:('奔驰', '奥迪', '五菱宏光')

但元组与列表不同的是,元组为不可变数据类型,无法原地修改其中的值。

t = ('奔驰','宝马','奥迪','布加迪威龙','五菱宏光')
print(t[1])
print(t[-1])

print(t[0:4])
print(t[::-1])
print(t[0:5:2])

t[0] = '兰博基尼'
# 结果:TypeError: 'tuple' object does not support item assignment

虽然元素是不可变数据类型,但是可以通过"+"号可以把两个元组合并为一个新的元组。

t1 = ('北京','广州','杭州')
t2 = ('南京','内蒙古','山东')
t3 = t1 + t2
print(t3)
# 结果:('北京', '广州', '杭州', '南京', '内蒙古', '山东')
print(type(t3))
# 结果:<class 'tuple'>

元组的重复:

简单来说,元组正如字符串的重复一样,当队员组使用* 时,赋值制定此术后合并为一个新的元组。

tp = ('张飞','马超','关羽','赵云')
tp1 = tp * 2
print(tp1)
# 结果: ('张飞', '马超', '关羽', '赵云', '张飞', '马超', '关羽', '赵云')

元素是否存在,in 和 not in

判断元组中是否有该元素,与字符串、列表的元素判断存在一样:

tp = ('张飞','马超','关羽','赵云')
print('刘备' in tp)
# 结果:False
print('张飞' in tp)
# 结果:True
print('曹操' not in tp)
# 结果:True
print('赵云' not in tp)
# 结果: False

序列(元组)数据类型的打包与解包

t = 1, 2, 3
x, y, z = t
print(x, y, z)
# 结果:1 2 3

上面的栗子,将1,2,3打包赋值给变量t,相当于将三个苹果打包到一个盒子内。第二行,从盒子t中将三个苹果取出来,分别交给下x, y, z, 我们成为:解包。解包这里药注意的是:盒子里有几个苹果,必须有几个对应的变量接收。多了报错,少了也报错。

平行赋值

x, y = 100 , 200
print(x,y)
# 结果为:100 200

如上列第一行所示,平行赋值就是等号右边的1,2分别赋值给等号左边的x,y。

删除元组
注意,这里说的删除仅是删除整个元组,而不是删除元组中某个元素。

t = ('山西','东北','上海')
del t[1]
# 结果报错:TypeError: 'tuple' object doesn't support item deletion

del t
print(t)
# 结果报错:NameError: name 't' is not defined,t元组已经被删除,不存在了无法查看。

总结,元组中常用的操作符:

操作符(表达式)描述重要程度
+合并**
*重复**
in成员资格****
for i in (1, 2, 3):print(i)迭代*****
t[2]索引取值*****
t[start:stop:step]切片(截取)*****

 

可以运用到元素的函数:

方法描述重要程度
max(tuple)返回元组内最大的元素**
min(tuple)返回元组内最小的元素**
tuple(seq)将序列转换为元组*****
len(tuple)返回元组长度*****

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值