【Python】入门到放弃之第八章《元组》

上一篇:【Python】入门到放弃之第七章《列表》
下一篇:【Python】入门到放弃之第九章《字典》


前言

这是本系列的第八章节内容,《元组》。


一、定义

  • 元组(Tuple)是Python中的一种基本数据结构,用于存储一系列的元素,这些元素可以是不同类型的数据。与列表(List)不同,元组是不可变的,这意味着一旦创建了一个元组,就不能更改其内部元素的顺序或值。

二、创建

1.基本创建

代码如下(示例):

# 创建一个包含多个不同类型元素的元组
my_tuple = (1, 2.5, 'Python', True)
print(my_tuple)

# 创建一个只包含一个元素的元组(注意逗号)
single_element_tuple = (42,)
print(single_element_tuple)

# 实际上,即使不显式使用圆括号,只要元素之间有逗号,Python也会将其视为元组
# 但为了清晰和一致性,通常还是推荐使用圆括号
implicit_tuple = 1, 2, 3
print(implicit_tuple)

# 使用生成器表达式和tuple()函数创建一个元组
squared_tuple = tuple(x*x for x in range(1, 4))
print(squared_tuple)  # 输出: (1, 4, 9)

输出如下(示例):

(1, 2.5, 'Python', True)
(42,)
(1, 2, 3)
(1, 4, 9)

2.转换创建

  • 使用内置的tuple()函数来将其他可迭代对象(如列表、字符串、集合等)转换为元组。

代码如下(示例):

# 将列表转换为元组  
my_list = [10, 20, 30]  
my_tuple = tuple(my_list)  
print(my_tuple)  # 输出: (10, 20, 30)  
  
# 将字符串转换为元组(每个字符作为一个元素)  
my_string = "hello"  
my_char_tuple = tuple(my_string)  
print(my_char_tuple)  # 输出: ('h', 'e', 'l', 'l', 'o')

三、访问元素

  • 在Python中,访问元组(Tuple)元素是通过索引(Index)来完成的。元组的索引从0开始,直到元组的长度减1。使用方括号[]加上索引号来访问元组中的特定元素。

代码如下(示例):

# 原始元组  
# 定义一个元组  
my_tuple = (1, 'a', 3.14, True)  
  
# 访问第一个元素(索引为0)  
print(my_tuple[0])  # 输出: 1  
  
# 访问第三个元素(索引为2)  
print(my_tuple[2])  # 输出: 3.14  
  
# 访问最后一个元素(使用负索引,-1表示最后一个元素)  
print(my_tuple[-1])  # 输出: True  
  
# 尝试访问不存在的索引会抛出IndexError  
# print(my_tuple[4])  # 这会抛出一个IndexError

四、不可变性

  • 由于元组是不可变的,所以不能直接修改元组中的元素。但是,可以通过元组切片(Slicing)和拼接(Concatenation)来创建包含修改后数据的新元组。

代码如下(示例):

# 原始元组  
my_tuple = (1, 'a', 3.14, True)  
  
# 创建一个新元组,其中第一个元素被替换  
new_tuple = (10,) + my_tuple[1:]  
  
print(new_tuple) 

输出如下(示例):

(10, 'a', 3.14, True)
  • 然而,需要澄清的是,元组的不可变性是针对元组内部元素的直接修改的。虽然不能更改元组内部元素的值,但元组可以包含可变类型的元素(如列表、字典或其他可变对象)。在这种情况下,虽然不能更改元组中这些可变元素的身份(即你不能将列表替换为另一个列表),但可以更改这些可变元素内部的状态。
  • 这种特性有时会导致混淆,因为它可能让人误以为元组不是完全不可变的。但重要的是要理解,元组的不可变性是指其内部元素身份的不变性,而不是指其内部元素状态的不变性(特别是当这些元素是可变类型时)。

代码如下(示例):

# 创建一个包含列表的元组  
my_tuple = (1, [2, 3], 'a')  
  
# 我们不能更改元组中的元素身份,比如不能直接将列表替换为另一个列表  
# my_tuple[1] = [4, 5]  # 这会抛出TypeError  
  
# 但是,我们可以更改元组中列表的内部内容  
my_tuple[1].append(4)  
  
print(my_tuple) 

输出如下(示例):

(1, [2, 3, 4], 'a')

五、应用场景

  1. 需要存储一系列不可变的元素时。
  2. 由于元组是不可变的,它们可以用作字典的键(而列表则不可以)。
  3. 在某些情况下,使用元组可以提高代码的可读性和性能,因为Python在内部对元组进行了优化。

总结

以上,就是Python中元组的全部内容。元组是Python中非常有用的数据结构,虽然其本身不支持很多修改操作,但Python提供了一些内置函数来处理元组,如len()来获取元组的长度,max()和min()来获取元组中的最大和最小值(如果元组中的元素支持这些操作的话),以及tuple()函数来将其他类型的序列转换为元组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值