geekdoc-python-zh/docs/pythonlibrary/python-101-learning-about-t...

4.4 KiB
Raw Blame History

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 中的基本数据类型。它在语言中经常使用,当然是你应该熟悉的。在这一章中,你学习了如何用三种不同的方法创建一个元组

您还了解了元组是不可变的。最后,您学习了如何连接元组和创建空元组。现在你已经准备好进入下一章,学习所有关于字典的知识了!