元组有什么用?

时间:2020-03-05 18:47:07  来源:igfitidea点击:

我现在正在为一门课程学习Python,我们只是将元组作为数据类型之一进行了介绍。我在上面阅读了Wikipedia页面,但是,我不知道这种数据类型在实际中将在哪里有用。我是否可以举出一些示例,也许在Python中,需要一组不可变的数字?这与清单有何不同?

解决方案

回答

  • 每当我们要从一个函数返回多个结果时,就使用元组。
  • 由于它们是不可变的,因此可以用作字典的键(列表不能)。

回答

当我们始终将两个或者多个对象作为一组处理时,我发现它们很有用。

回答

就功能而言,列表始终可以替换元组(显然,作为dict中的键除外)。但是,元组可以使处理更快。例如,对于Java中的不可变字符串,情况也是如此-什么时候我们将需要无法更改字符串?绝不!

我刚刚阅读了有关限制我们可以做的更好的程序的不错的讨论;为什么函数式编程如此重要

回答

当我们需要将多个数据组合到键中,而又不想为它创建类时,元组就成为了很好的字典键。

a = {}
a[(1,2,"bob")] = "hello!"
a[("Hello","en-US")] = "Hi There!"

我主要使用此功能来创建带有键的字典,这些键是网格顶点的坐标。但是,在我的特定情况下,所涉及的浮点数的精确比较工作正常,这可能并不总是出于目的[在这种情况下,我可能会将传入的浮点数转换为某种定点整数]

回答

元组对于存储多个值很有用。正如我们所注意到的,元组就像一个不可变的列表,例如创建后,我们将无法添加/删除/交换元素。

不变的一个好处是,由于元组是固定大小的,因此它允许运行时执行某些优化。当在函数的返回值或者参数的上下文中使用连音符时,这特别有益。

回答

元组和列表通常具有相同的用途。通常,不可变数据类型有很多好处,主要涉及并发问题。

因此,当列表本质上不是不稳定的,并且需要确保没有消费者在更改它时,可以使用元组。

典型示例是应用程序中的固定数据,例如公司的部门,类别等。如果此数据发生更改,则通常由单个生产者重建元组。

回答

我喜欢这个解释。

基本上,应该在具有恒定结构的情况下使用元组(第一个位置始终持有一种类型的值,第二个位置始终持有另一种类型,依此类推),并且列表应用于同构值列表。

当然总会有例外,但这是一个很好的一般准则。

回答

除了在语法上需要它们的地方(例如字符串%操作)和多个返回值之外,我还使用元组作为轻量级类的形式。例如,假设我们有一个对象,该对象将不透明cookie从一个方法传递给调用者,然后将其传递给另一个方法。元组是将多个值打包到该cookie中的一种好方法,而不必定义一个单独的类来包含它们。

不过,我尝试谨慎使用此特定用途。如果在整个代码中都广泛使用cookie,则最好创建一个类,因为它有助于记录它们的使用。如果它们仅在一个地方使用(例如一对方法),那么我可能会使用一个元组。无论如何,因为它是Python,所以我们可以从元组开始,然后将其更改为自定义类的实例,而不必更改调用方中的任何代码。