CodeGym /Java 课程 /Python SELF ZH /高级元组操作

高级元组操作

Python SELF ZH
第 8 级 , 课程 6
可用

15.1 创建元组的副本

好啦,我们已经知道,元组 (tuples) 是不可变的元素序列。 因为它们不可变,创建元组的副本看起来好像没什么重要的, 因为和列表不同,元组创建后不能更改。

不过有时候可能需要创建一个元组副本, 特别是当需要在不改变原始数据的情况下使用其单独版本时。以下是主要的方法:

直接赋值

创建元组副本最简单的方法是使用直接赋值。这样会 创建一个新的元组对象,但因为元组是不可变的,两个对象会引用相同的数据。


original_tuple = (1, 2, 3, 4, 5)
copied_tuple = original_tuple
print(copied_tuple)
        

在这种情况下,copied_tuple 会引用与 original_tuple 相同的对象。

使用函数 tuple()

创建元组副本的另一种方法是使用内置函数 tuple()。这个函数创建一个新元组并复制 原始元组的元素。


original_tuple = (1, 2, 3, 4, 5)
copied_tuple = tuple(original_tuple)
print(copied_tuple)

        

这种方法在你想确保创建新对象时特别有用, 即使原始对象可能是其他可迭代对象。

通过列表转换

有时候可能需要创建元组的可变副本作为列表, 以进行更改,然后再将其转换为元组。


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

temp_list = list(original_tuple)
temp_list.append(6)
copied_tuple = tuple(temp_list)
            
print(copied_tuple)

        

在这个示例中,我们先将元组转换为列表,添加 一个新元素,然后再将列表转换回元组。

15.2 合并元组

与列表不同,元组在创建后无法修改,但你可以通过 合并现有的元组来创建新元组。合并元组是一个常见的操作, 在多种编程场景中都可能有用。

合并元组的主要方法

连接

合并两个或多个元组最简单的方法是使用 操作符 +。这种方法创建一个新元组, 即原始元组连接的结果。


tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
combined_tuple = tuple1 + tuple2
            
print(combined_tuple)
        

在这个例子中,combined_tuple 将包含元素 (1, 2, 3, 4, 5, 6)。

乘以整数

你还可以使用操作符 * 将元组乘以整数。 这会重复元组指定的次数并创建一个新元组。


tuple1 = (1, 2, 3)
multiplied_tuple = tuple1 * 3
            
print(multiplied_tuple)
        

在这里,multiplied_tuple 将包含元素 (1, 2, 3, 1, 2, 3, 1, 2, 3)。

函数 itertools.chain

对于合并大量元组,可以使用 itertools 模块的 chain 函数。这很方便, 当合并的元组数量未知时。


from itertools import chain

tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
tuple3 = (7, 8, 9)
            
combined_tuple = tuple(chain(tuple1, tuple2, tuple3))
print(combined_tuple)
        

结果将是 (1, 2, 3, 4, 5, 6, 7, 8, 9)。

15.3 嵌套元组

包含其他元组的元组被称为 嵌套元组 (nested tuples)。嵌套元组 提供了一种方便的数据组织和结构化方式,尤其是当需要表示多维数据或复杂结构时。

你可以通过创建嵌套结构来合并元组。这在 将数据组织为多维结构时很有用。在 Python 中创建嵌套元组 和创建普通元组一样简单。你只需在一个元组中包含另一个元组。


nested_tuple = ((1, 2, 3), (4, 5, 6), (7, 8, 9))
        

在这个示例中,nested_tuple 包含三个元组,每个元组由三个元素组成。

从普通元组创建嵌套元组的示例:

在这个示例中,nested_tuple 包含三个元组,每个元组由三个元素组成。


tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
nested_tuple = (tuple1, tuple2)
            
print(nested_tuple)
        

这里 nested_tuple 将包含 ((1, 2, 3), (4, 5, 6))。

访问嵌套元组的元素

访问嵌套元组的元素是通过使用多重索引实现的。 首先为外部元组指定索引,然后为内部元组指定。


nested_tuple = ((1, 2, 3), (4, 5, 6), (7, 8, 9))

# 访问第二个嵌套元组中的元素 5
element = nested_tuple[1][1]
print(element)  # 输出: 5
        

多维数组

嵌套元组经常用于表示二维或多维数组。例如, 数据表可以表示为元组的元组,其中每个表行是一个单独的元组。

数据结构化

嵌套元组适合数据结构化,例如 地理坐标(纬度和经度)为多个地点:


locations = (("New York", (40.7128, -74.0060)), 
             ("Los Angeles", (34.0522, -118.2437)), 
             ("Chicago", (41.8781, -87.6298)))
        
1
Опрос
Python中的元组,  8 уровень,  6 лекция
недоступен
Python中的元组
Python中的元组
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION