Python元组(tuple)

版权声明:编写不易,转载请注明出处 https://blog.csdn.net/zha6476003/article/details/82780995

元组(tuple)是Python中另一个重要的序列结构,与列表类型,也是由一系列按特定顺序排列的元素组成,但是他是不可变序列。在形式上元组的所有元素都放在"()“中,两个元素使用”,"分隔,在内容上可以将整数、实数、字符串、列表、元组等任何类型放入到元组中。

元组的创建和删除

使用赋值运算符直接创建

以下种形式都是可以的:

num = (1, 3, 5, 2)
num2 = ("哈哈", "嘿嘿")
num3 = (1, 2, 3, 4, "再来一次")
num4 = (1) #注意不加","是默认int类型
num5 = (1,)
num6 = 1, 2, 3 # 小括号不是必须的

print(type(num))
print(type(num2))
print(type(num3))
print(type(num4))
print(type(num5))
print(type(num6))

执行结果:
	<class 'tuple'>
	<class 'tuple'>
	<class 'tuple'>
	<class 'int'>
	<class 'tuple'>
	<class 'tuple'>

创建空元组

tuplename = ()

创建数值元组

num = tuple(range(10, 20, 2))
print(num)

执行结果:
	(10, 12, 14, 16, 18)

删除元组

使用del

示例代码:

num = tuple(range(10, 20, 2))
print("删除前tuple")
del num
print(num)

执行结果:
	Traceback (most recent call last):
	删除前tuple
	  File "D:/xuexi/python/Python基础/Demo.py", line 9, in <module>
	    print(num)
	NameError: name 'num' is not defined
	
报错的原因是前面使用del删除了,所以找不到这个tuple了

访问元组元素

使用下标访问元素:

示例代码:

num = tuple(range(10, 20, 2))
print(num[1:])
print(num[:])
print(num[:5])
print(num[1:2])

执行结果:
	(12, 14, 16, 18)
	(10, 12, 14, 16, 18)
	(10, 12, 14, 16, 18)
	(12,)

遍历元组

示例代码:

num = tuple(range(10, 20, 2))
for i in num:
    print(i)

执行结果:
	10
	12
	14
	16
	18

修改元组元素

示意代码1:

one = ("南山南", 1, 2, 3)
print("原始元组:", one)
two = one + ("哈哈",)
print("修改后元组:", two)

执行结果:
	原始元组: ('南山南', 1, 2, 3)
	修改后元组: ('南山南', 1, 2, 3, '哈哈')

示意代码3:

one = ("南山南", 1, 2, 3)
one = (1, 2, 3, 4, "再来一次")
print(one)

执行结果:
	(1, 2, 3, 4, '再来一次')

元组推导式

示例代码1:

import random
randomnumber = (random.randint(10, 100) for i in range(10))# random.randint(10, 100)是添加的内容,range(10)是限制个数
randomnumber = tuple(randomnumber) # 不进行转换直接输出显示为一个生成器对象
print(randomnumber)

执行结果:
	(27, 80, 58, 56, 59, 73, 66, 11, 56, 83)

示例代码2:

num = (i for i in range(10))
num = tuple(num)
print(num)

执行结果:
	(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

示例代码3:

num = (i for i in range(5))
print(num.__next__())
print(num.__next__())
print(num.__next__())
print(num.__next__()) # 注意__next__()取值最大长度不能超过元组长度,否则会报错StopIteration
num = tuple(num)
print(f"前面去了还剩下的有吗?还有{len(num)}个 →",tuple(num))

执行结果:
	0
	1
	2
	3
	前面去了还剩下的有吗?还有1个 → (4,)

以上结论是使用了__next__()一次元组中就会少一个元素

猜你喜欢

转载自blog.csdn.net/zha6476003/article/details/82780995