4.4 KiB
Python 101 -了解元组
原文:https://www.blog.pythonlibrary.org/2020/03/26/python-101-learning-about-tuples/
元组是 Python 中的另一种序列类型。元组由许多用逗号分隔的值组成。元组是不可变的,而列表不是。不可变意味着元组有一个固定的值,不能改变。您不能添加、删除或修改元组中的项目。当您需要一个常量哈希值时,不可变对象非常有用。最流行的例子是 Python 字典的密钥。
在本文中,您将学习如何:
- 创建元组
- 使用元组
- 连接元组
- 特殊情况元组
让我们来看看如何创建元组!
创建元组
可以用几种不同的方式创建元组。让我们来看看:
>>> a_tuple = (4, 5)
>>> type(a_tuple)
<type 'tuple'>
创建一个元组的最简单方法之一是使用普通括号:**()。**括号中的项目是一系列值。它们可以是整数、列表、字典或任何其他对象。
您还可以使用元组()函数将列表转换为元组:
>>> a_tuple = tuple(['1', '2', '3'])
>>> type(a_tuple)
<type 'tuple'>
这个例子演示了如何将一个 Python 列表转换或造型为一个元组。
这最后一段代码显示了如何隐式创建元组:
>>> a_tuple = 2, 3, 4
>>> type(a_tuple)
<type 'tuple'>
如果你有一个对象序列(整数、字符串等)并将它们赋给一个变量,Python 会自动将它们转换成一个元组。
使用元组
由于元组是不可变的,所以实际上没有很多方法来处理它们。如果您正在运行 dir(tuple()) ,您会发现元组只有两个方法:
- count()
- 索引()
您可以使用 count() 来找出有多少元素与您传入的值相匹配:
>>> a_tuple = (1, 2, 3, 3)
>>> a_tuple.count(3)
2
在这种情况下,您可以找出整数“3”在“元组”中出现了多少次。
您可以使用“index()”来查找一个值的第一个索引:
>>> a_tuple = (1, 2, 3, 3)
>>> a_tuple.index(2)
1
这个例子向您展示了数字 2 位于索引 1 处,这是元组中的第二项。元组是零索引的,这意味着第一个元素从零开始。
您可以使用在前一章中学习的索引方法来访问元组中的元素:
>>> a_tuple = (1, 2, 3, 3)
>>> a_tuple[2]
3
换言之,元组中的第一个“3”位于索引 2 处。
让我们尝试修改您的元组中的一个元素:
>>> a_tuple[0] = 8
Traceback (most recent call last):
Python Shell, prompt 92, line 1
TypeError: 'tuple' object does not support item assignment
这里,您尝试将元组中的第一个元素设置为 8。然而,这导致产生了一个类型错误,因为元组是不可变的,不能被改变。
连接元组
元组可以连接在一起。但是,当您这样做时,您将最终创建一个新的元组:
>>> a_tuple = (1, 2, 3, 3)
>>> id(a_tuple)
140617302751760
>>> a_tuple = a_tuple + (6, 7)
>>> id(a_tuple)
140617282270944
在这里,您将第二个元组连接到第一个tuple。可以使用 Python 的 id() 函数来查看变量 a_tuple 发生了变化。方法返回对象的 id。这相当于在 C++中使用的内存地址。您会注意到在连接第二个元组之后,数字发生了变化。这意味着你有了一个新的对象。
特殊情况元组
有两种特殊情况的元组。一个包含零项的元组和一个包含一项的元组。它们是特例的原因是创建它们的语法有点不同。
要创建空元组,可以执行下列操作之一:
>>> empty = tuple()
>>> len(empty)
0
>>> type(empty)
<type 'tuple'>
>>> also_empty = ()
>>> len(also_empty)
0
您可以通过调用不带参数的 tuple() 函数来创建空元组,或者在使用空括号对时通过赋值来创建空元组。
现在让我们用单个元素创建一个元组:
>>> single = 2,
>>> len(single)
1
>>> type(single)
<type 'tuple'>
要用单个元素创建一个元组,可以用一个逗号来赋值。注意上面例子中 2 后面的逗号。
包扎
元组是 Python 中的基本数据类型。它在语言中经常使用,当然是你应该熟悉的。在这一章中,你学习了如何用三种不同的方法创建一个元组。
您还了解了元组是不可变的。最后,您学习了如何连接元组和创建空元组。现在你已经准备好进入下一章,学习所有关于字典的知识了!