3.4 元组
tuple 元组的元素是不可以改变的,列表是可以任意修改的
在使用中和列表是相似的
1. 创建和访问一个元组
逗号 , 是元组和列表等其他的区分标志
创建
tuple1 = (1,2,3,4,5,6,6,7,8)
print(tuple1)
访问一个元组的元素
print(tuple1[3]) #打印4
name = tuple1[4:]
print(tuple1[4:])
print(name) #打印第五个开始后面的元素
tuple2 = tuple1[:]
print(tuple2) #拷贝
**元组的标志性的符号是 **
temp = (1) #1为int型数值类型,即有()不一定是元组
print(temp)
print(type(temp)) # 打印int
temp2 = 2,3,4,5 #逗号是关键符号
print(type(temp2)) #打印tuple
temp3 = (1,) #元组
print(type(temp3))
print(8*(8)) #返回一个数字64,int
print(8*(8,)) #返回8个元组,这里的*是重复操作符
创建一个空元组
temp4 = () #只用小括号()可以创建一个空元组
print(type(temp4))
在创建一个元组时,如果只有一个元素,需要在元素后添加逗号
如果需要创建一个空元组,则使用()来创建空元组
扫描二维码关注公众号,回复:
10368489 查看本文章
2. 更新和删除一个元组
前面提到元组是不可更改的,如何更新?
通过现有的分片来修改
temp = ('weivid','nihao','mitu','xiaobuding')
temp = temp[:2]+ ('yijing',)+temp[2:]
print(temp) #在第三个后面添加yijing,
注意(,)括号和逗号缺一不可
删除一个元组
del
python 有自动回收机制,所以一般建议不使用del来删除,当发现内存中的元组和列表中没有标签指向的时候
内部会自动清除这些
3. 元组相关的操作符
1)拼接操作符 +
2)重复操作符 *
3)关系操作符
4)逻辑操作符 and or
5)成员关系操作符 in not in
练习题
1. 请用一句话描述什么是列表,再用一句话描述什么是元组?
列表就是一个大仓库,你可以随时往里面添加和删除任何东西
元组就是一个封闭的列表,一旦定义,就不可以改变,即不能添加、删除元素
2. 什么情况下可以使用元组,而不是列表
当我们希望内容不轻易改写的时候,我们使用元组
如果我们需要频繁修改数据,我们则使用列表
3. 什么情况下,在创建元组的时候,小括号()和逗号,必须同时存在?
在拼接时,只有一个元素的元组的时候,例如之前的例子
temp = ('weivid','nihao','mitu','xiaobuding')
temp = temp[:2]+ ('yijing',)+temp[2:]
print(temp) #在第三个后面添加yijing,
注意(,)括号和逗号缺一不可
4. x,y,z = 1,2,3 请问下 x,y,z是元组吗?
x, y, z 组成的是元组,而单个是int型的
x,y,z = 1,2,3
print(type(z))
h = x,y,z
print(type(h))
5. 列表有”列表推导式“,元组有”元组推导式“吗?
元组没有元组推导式,但是对于下面这个是正确的
tuple1 = (x**2 for x in range(10))
#产生了一个生成器类型的
print(type(tuple1))
访问生成器使用next()方法,对于python 3,next()方法改为__next__()
print(tuple1.__next__())
print(tuple1.__next__())
print(tuple1.__next__())
print(tuple1.__next__())
print(tuple1.__next__())
print(tuple1.__next__())
print(tuple1.__next__())
print(tuple1.__next__())
print(tuple1.__next__())