Python 元组 – 打包、解包、比较、切片、删除、键
Python 中的元组匹配是什么?
Python 中的元组匹配是一种通过匹配元组中的第二个元素来对元组进行分组的方法。它通过使用字典,在 Python 编程中检查每个元组的第二个元素来实现。但是,我们也可以通过获取现有元组的一部分来创建新的元组。
元组语法
Tup = ('Jan','feb','march')
要编写一个空元组,您需要像这样写两个空的括号:
tup1 = ();
要为单个值编写元组,即使只有一个值,您也需要包含一个逗号。另外,最后您需要写一个分号,如下所示。
Tup1 = (50,);
元组索引从 0 开始,它们可以连接、切片等。
元组赋值
Python 具有元组赋值功能,可让您一次为多个变量赋值。在此,我们为元组 1 分配了关于此人的信息,例如姓名、姓氏、出生年份等,为元组 2 分配了其中的值,例如数字 (1,2,3,….,7)。
例如,
(姓名, 姓氏, 出生年份, 喜欢的电影和年份, 职业, 出生地) = Robert
代码如下,
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)
打包和解包
在打包中,我们将值放入一个新元组;在解包中,我们将其值提取回变量。
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 更大。”
将元组用作字典中的键
由于元组是可哈希的,而列表不是,因此如果我们想创建一个复合键用于字典,我们必须使用元组作为键。
示例:如果我们想创建一个电话目录,映射名字、姓氏、电话号码对等,我们会遇到复合键。假设我们已经声明了变量 last 和 first number,我们可以像下面这样编写字典赋值语句。
directory[last,first] = number
在方括号内,表达式是一个元组。我们可以在 for 循环中使用元组赋值来遍历此字典。
for last, first in directory:
print first, last, directory[last, first]
此循环遍历目录中的键,这些键是元组。它将每个元组的元素分配给 last 和 first,然后打印姓名和相应的电话号码。
元组和字典
字典可以通过调用 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 代码
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]
带有元组的内置函数
要执行不同的任务,元组允许您使用许多内置函数,如 all()、any()、enumerate()、max()、min()、sorted()、len()、tuple() 等。
元组相对于列表的优点
- 由于元组是不可变的,因此遍历元组比列表更快。
- 由不可变元素组成的元组可以用作字典的键,而列表则不能。
- 如果您拥有不可变数据,将其实现为元组将确保它保持写保护状态。
摘要
Python 具有元组赋值功能,可让您一次为多个变量赋值。
- 元组的打包和解包
- 在打包中,我们将值放入一个新元组;在解包中,我们将其值提取回变量。
- Python 中的 比较运算符 可以与元组一起使用。
- 将元组用作字典中的键
- 元组是可哈希的,而列表不是。
- 如果我们想创建一个复合键用于字典,我们必须使用元组作为键。
- 字典可以通过调用 items 返回元组列表,其中每个元组都是一个键值对。
- 元组是不可变的,不能被删除。您不能从元组中删除或移除项目。但是可以使用关键字“del”完全删除元组。
- 为了从元组或列表中获取特定的子元素集,我们使用这个称为切片的功能。