理解元组计算
understanding a tuple calculation
我是 Python 初学者,目前正在使用它。在大多数情况下,我理解 tuples
但有一件事让我感到困惑。我正在关注的例子是
print 'Number of animals in the new zoo is', \
len(new_zoo)-1+len(new_zoo[2])
我知道我在 tuple
中有一个 tuple
但我不明白为什么我需要使用 -1,我已经摆脱了 -1 并尝试指定不同的参数对于 new_zoo、运行 脚本的第一个实例,得到了不正确的答案或错误。
有人可以解释为什么会这样吗?是否有更好的方法来获得正确答案?
是否使用-1
完全取决于元组models.
如果元组包含 N 个元素,但 N - 1 个元素是动物,而一个额外的元素是另一个动物元组,您不想将该嵌套元组本身算作动物,因此您减去一个。
因此元组 ('zebra', 'monkey', ('lion', 'tiger', 'puma'), 'giraffe')
包含 6 只动物,而不是 4 或 7(外部元组的长度或外部元组的长度加上索引 2 处的元组):
>>> new_zoo = ('zebra', 'monkey', ('lion', 'tiger', 'puma'), 'giraffe')
>>> len(new_zoo)
4
>>> len(new_zoo[2])
3
>>> len(new_zoo) + len(new_zoo[2])
7
>>> len(new_zoo) - 1 + len(new_zoo[2])
6
此计算需要知道元组中的内容,不能推广到 Python 中的所有元组。
首先,书中指定的反斜杠在Python 3.4 上是不需要的,如果您还没有注意到的话。
len(new_zoo) = 3
(猴子、骆驼和动物园是 3 个项目)- 1 给我们 2,这是 new_zoo 元组中动物的数量。
len(new_zoo[2]) = 3
因为元组中的第三项是动物园,其中包含 3 只动物(python、大象和企鹅)。
new_zoo 元组中的第三项是嵌套元组,因此:
len(new_zoo)-1+len(new_zoo[2]) = 2 + 3 = 5
这就是你需要减去 1 的原因。
我是 Python 初学者,目前正在使用它。在大多数情况下,我理解 tuples
但有一件事让我感到困惑。我正在关注的例子是
print 'Number of animals in the new zoo is', \
len(new_zoo)-1+len(new_zoo[2])
我知道我在 tuple
中有一个 tuple
但我不明白为什么我需要使用 -1,我已经摆脱了 -1 并尝试指定不同的参数对于 new_zoo、运行 脚本的第一个实例,得到了不正确的答案或错误。
有人可以解释为什么会这样吗?是否有更好的方法来获得正确答案?
是否使用-1
完全取决于元组models.
如果元组包含 N 个元素,但 N - 1 个元素是动物,而一个额外的元素是另一个动物元组,您不想将该嵌套元组本身算作动物,因此您减去一个。
因此元组 ('zebra', 'monkey', ('lion', 'tiger', 'puma'), 'giraffe')
包含 6 只动物,而不是 4 或 7(外部元组的长度或外部元组的长度加上索引 2 处的元组):
>>> new_zoo = ('zebra', 'monkey', ('lion', 'tiger', 'puma'), 'giraffe')
>>> len(new_zoo)
4
>>> len(new_zoo[2])
3
>>> len(new_zoo) + len(new_zoo[2])
7
>>> len(new_zoo) - 1 + len(new_zoo[2])
6
此计算需要知道元组中的内容,不能推广到 Python 中的所有元组。
首先,书中指定的反斜杠在Python 3.4 上是不需要的,如果您还没有注意到的话。
len(new_zoo) = 3
(猴子、骆驼和动物园是 3 个项目)- 1 给我们 2,这是 new_zoo 元组中动物的数量。
len(new_zoo[2]) = 3
因为元组中的第三项是动物园,其中包含 3 只动物(python、大象和企鹅)。
new_zoo 元组中的第三项是嵌套元组,因此:
len(new_zoo)-1+len(new_zoo[2]) = 2 + 3 = 5
这就是你需要减去 1 的原因。