Python TUPLE – 打包、解包、比较、切片、删除、键

⚡ 智能摘要

Python 元组是用括号括起来的有序、不可变的值集合。以下示例涵盖了元组的打包和解包、比较元组、将元组用作字典键、删除、切片以及元组相对于列表的优势。

  • 📦 定义: 元组是用括号创建的有序、不可变的集合。
  • 🔁 打包/拆包: 将值分组到一个元组中,然后例如trac将它们转换回变量。
  • 比较: 元组从左到右逐个元素进行比较。
  • ???? 字典键: 由于元组是可哈希的,因此它们可以用作复合字典的键。
  • ✂️ 切片: 使用切片表示法从元组中获取子元素。
  • 🚀 优点: 与列表相比,元组速度更快,并且具有写保护功能。

Python 元组

什么是元组匹配 Python?

元组匹配 Python 是一种分组方法ping 通过匹配元组中的第二个元素来创建元组。这可以通过在 Python 编程中使用字典来实现,方法是检查每个元组中的第二个元素。但是,我们也可以通过从现有元组中提取部分元素来创建新元组。

元组语法

Tup = ('Jan','feb','march')

要写一个空元组,你需要写两个不包含任何内容的括号 -

tup1 = ();

对于单个值的元组,即使只有一个值,也需要包含逗号。此外,末尾还需要写分号,如下所示。

Tup1 = (50,);

元组索引从 0 开始,并且可以进行连接、切片等等。

元组赋值

Python 具有元组分配功能,可让您一次分配多个变量。在这里,我们已将姓名、姓氏、出生年份等个人信息分配给元组 1,并将其中的值分配给另一个元组 2,例如数字 (1,2,3,….,7)。

例如,

(名字、姓氏、出生年份、最喜欢的电影和年份、职业、出生地) = 罗伯特

这是代码,

tup1 = ('Robert', 'Carlos','1965','Terminator 1995', 'Actor','Florida');
tup2 = (1,2,3,4,5,6,7);
print(tup1[0])
print(tup2[1:4])
  • 元组 1 包含 Robert 的信息列表
  • 元组 2 包含数字列表
  • 我们将元组中 [0] 的值称为元组,将元组 2 中的值称为 1 到 4 之间的值
  • 运行代码-它为第一个元组给出名称 Robert,而为第二个元组给出数字(2,3、4 和 XNUMX)

打包和拆包

在打包过程中,我们将值放入一个新的元组中;而在解包过程中,我们则……trac将这些值转换回变量。

x = ("Guru99", 20, "Education")    # tuple packing
(company, emp, profile) = x    # tuple unpacking
print(company)
print(emp)
print(profile)

比较元组

比较运算符 Python 可以处理元组。

比较从每个元组的第一个元素开始。如果它们与 =、< 或 > 不匹配,则继续比较第二个元素,依此类推。

首先比较每个元组的第一个元素

让我们通过一个例子来研究一下

#情况1

a=(5,6)
b=(1,4)
if (a>b):print("a is bigger")
else: print("b is bigger")

#情况2

a=(5,6)
b=(5,4)
if (a>b):print("a is bigger")
else: print ("b is bigger")

#情况3

a=(5,6)
b=(6,4)
if (a>b):print("a is bigger")
else: print("b is bigger")

情况1: 比较从每个元组的第一个元素开始。在本例中,5>1,因此输出 a 较大

案例2: 比较从每个元组的第一个元素开始。在本例中,5>5,结果不确定。因此,它继续比较下一个元素。6>4,因此输出 a 较大

案例3: 比较从每个元组的第一个元素开始。在本例中,5>6 为假。因此它进入 else 块并打印“b 更大”。

使用元组作为字典中的键

由于元组是可哈希的,而列表不是,所以如果我们需要创建一个用于字典中的复合键,我们必须使用元组作为键。

例如::如果我们需要创建一个电话簿,映射名字、姓氏、电话号码对等,我们就会遇到复合键。假设我们已经将变量声明为姓氏和名字,我们可以编写一个字典赋值语句,如下所示:

directory[last,first] = number

括号内的表达式是一个元组。我们可以在 for 循环中使用元组赋值来浏览这个字典。

for last, first in directory:
print first, last, directory[last, first]

此循环浏览目录中的键,这些键是元组。它将每个元组的元素分配到最后和最前面,然后打印姓名和相应的电话号码。

元组和字典

Dictionary 可以通过调用 items 返回元组列表,其中每个元组都是一个键值对。

a = {'x':100, 'y':200}
b = list(a.items())
print(b)

删除元组

元组是不可变的,不能被删除。您不能从元组中删除或移除项目。但可以使用关键字

del

元组的切片

要从元组或列表中获取特定的子元素集,我们使用这个称为切片的独特函数。切片不仅适用于元组,也适用于数组和列表。

x = ("a", "b","c", "d", "e")
print(x[2:4])

该代码的输出将是('c','d')。

这里是 Python 2 Code 以上所有示例

tup1 = ('Robert', 'Carlos','1965','Terminator 1995', 'Actor','Florida');
tup2 = (1,2,3,4,5,6,7);
print  tup1[0]
print  tup2[1:4]

#Packing and Unpacking
x = ("Guru99", 20, "Education")    # tuple packing
(company, emp, profile) = x    # tuple unpacking
print company
print emp
print profile

#Comparing tuples
#case 1
a=(5,6)
b=(1,4)
if (a>b):print "a is bigger"
else: print "b is bigger"

#case 2
a=(5,6)
b=(5,4)
if (a>b):print "a is bigger"
else: print "b is bigger"

#case 3
a=(5,6)
b=(6,4)
if (a>b):print "a is bigger"
else: print "b is bigger"

#Tuples and dictionary
a = {'x':100, 'y':200}
b = a.items()
print b 

#Slicing of Tuple
x = ("a", "b","c", "d", "e")
print x[2:4]

带有 Tuple 的内置函数

为了执行不同的任务,tuple 允许您使用许多内置函数,如 all()、any()、enumerate()、max()、min()、sorted()、len()、tuple() 等。

元组相对于列表的优势

  • 通过元组进行迭代比通过列表进行迭代更快,因为元组是不可变的。
  • 由不可变元素组成的元组可以用作字典的键,而列表则无法做到这一点
  • 如果你有不可变的数据,将其实现为元组将保证它保持写保护

常见问题

元组是不可变的,用圆括号表示;列表是可变的,用方括号表示。元组速度更快,可以作为字典的键;列表更适合需要添加、删除或更改元素的情况。

不。元组是不可变的,创建后不能更改、添加或删除其元素。如果需要修改后的版本,请创建一个新的元组,或者将元组转换为列表,修改后再转换回来。

在数值后添加逗号,例如 t = (50,)。如果没有逗号, Python 将括号视为普通组ping 这样创建的是一个整数,而不是元组。逗号的作用是使其成为一个单元素元组。

使用 `tuple()` 函数可以将列表转换为元组,例如 `tuple([1, 2, 3])`。反之,可以使用 `list()` 函数将元组转换为列表。当需要临时修改原本固定的数据时,这种转换非常有用。

是的。元组可以包含混合类型,例如字符串、整数和浮点数,并且可以包含其他元组或列表。嵌套元组允许您对行、坐标或记录进行建模,其中每个位置都有明确的含义。

来自 collections 模块的命名元组为每个位置赋予一个名称,这样你就可以通过标签而不是索引来读取字段。它既保持了元组的不可变性和速度,又使代码更易读,就像一个轻量级的类。

元组用于存储固定有序的数据,例如数组形状、坐标和数据集记录。NumPy 和 pandas 等库使用元组来表示形状和索引键。元组的不可变性确保了机器学习数据在传递过程中不会发生意外更改。

是的。这些AI助手可以根据简单的英语提示生成元组打包、解包和切片代码,并逐行解释。它们还会建议何时使用元组比列表更合适。使用生成的代码之前,务必先进行审查和测试。

总结一下这篇文章: