Python选择'默认'元组项/索引吗?

时间:2014-06-30 15:37:03

标签: python tuples

想象一下以下功能:

def getMinAndMax(numbers):

  return min(numbers), max(numbers)

如果我这样做会怎么样?

num = getMinAndMax([1,2,3,4,5])

num会假设元组中第一项的值min,还是会发生其他事情?我知道我可以尝试一下,但我在这里寻找一些定义的Python行为。

2 个答案:

答案 0 :(得分:2)

num将是一个元组。在您的示例中,num的值将等于(1,5)。 Python默认不检查类型,因此您可以安全地将任何类型的值分配给任何变量。

答案 1 :(得分:2)

您的函数返回两元素元组min([1, 2, 3, 4, 5]), max([1, 2, 3, 4, 5]),其值为1, 5。声明

num = getMinAndMax([1,2,3,4,5])

会将名称num绑定到元组(1, 2),您可以访问num[0]num[1]各个值。但是,Python确实允许您使用通常称为解包分配的内容,如下所示:

nmin, nmax = getMinAndMax([1, 2, 3, 4, 5])

将每个名称绑定到右侧元组的后续元素,并允许您在不编制索引的情况下使用这些值。如果你需要一个结果元组,你的公式最简单,当然(nmin, nmax)表达式将从第二个表达式重新创建它。