Python 中的嵌套元组

2024 年 8 月 29 日 | 4 分钟阅读

嵌套元组是放置在另一个元组内的 Python 元组。让我们看下面这个包含 8 个元素的元组。

这个最后一个元素,它包含三个由括号括起来的项目,被称为嵌套元组,因为它包含在另一个元组中。可以通过使用主元组的名称以及索引值 `tuple[index]` 来获取嵌套元组,并且我们可以使用 `tuple[index-1][index-2]` 来访问嵌套元组中的每个项目。

嵌套元组示例

代码

输出

((10, 'Itika', 13000),)
((10, 'Itika', 13000), (24, 'Harry', 15294), (15, 'Naill', 20001), (40, 'Peter', 16395))

嵌套元组的一些操作

我们将看到嵌套元组的两个必要操作。

将元组连接到嵌套元组

在处理元组时,有时需要将单独的记录转换为嵌套组,同时将它们保持为独立的元素。元组通常通过添加内容来连接,这会展平结果容器,这通常是不可取的。让我们讨论一些解决此问题的方法。

在初始化时使用“+”运算符和“,”

在此技术中,我们像往常一样添加元组成员,但在初始化元组时,我们在每个元组后附加一个逗号,以防止在添加过程中展平。

代码

输出

Tuple 1 : ((5, 4),)
Tuple 2 : ((1, 6),)
The nested tuple : ((5, 4), (1, 6))

使用“,”运算符

可以通过在连接过程中应用“,”运算符来执行此任务。它可以执行安全连接。

代码

输出

Tuple 1 : (5, 4)
Tuple 2 : (1, 6)
The nested tuple ((5, 4), (1, 6))

对嵌套元组进行排序

我们可以使用 `sorted()` 方法对给定的元组进行排序。默认情况下,此方法按升序对元组进行排序。例如,`print(sorted(employee))` 将根据作为所有嵌套元组的第 0 个成员的标识号对 "employee" 元组进行排序。我们可以使用 lambda 函数根据嵌套元组的其他元素(例如员工姓名或计数,它们是嵌套元组的第一和第二个成员)对元组进行排序:`print(sorted(employee, key = lambda x: x[1]))`。

在这种情况下,`key` 告诉 `sorted()` 函数应该根据哪个元素来排序元组。lambda 表达式 `lambda x: x[1]` 暗示应该考虑作为索引一的元素(即第二个元素)作为排序的键。我们可以将 lambda 表达式写成 `lambda x: x[2]` 来根据单词计数对元组进行排序。

代码

输出

[(10, 'Itika', 13000), (15, 'Naill', 20001), (24, 'Harry', 15294), (40, 'Peter', 16395)]
[(40, 'Peter', 16395), (24, 'Harry', 15294), (15, 'Naill', 20001), (10, 'Itika', 13000)]
[(24, 'Harry', 15294), (10, 'Itika', 13000), (15, 'Naill', 20001), (40, 'Peter', 16395)]
[(40, 'Peter', 16395), (15, 'Naill', 20001), (10, 'Itika', 13000), (24, 'Harry', 15294)]
[(10, 'Itika', 13000), (24, 'Harry', 15294), (40, 'Peter', 16395), (15, 'Naill', 20001)]
[(15, 'Naill', 20001), (40, 'Peter', 16395), (24, 'Harry', 15294), (10, 'Itika', 13000)]