Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 理解元组计算_Python_Tuples - Fatal编程技术网

Python 理解元组计算

Python 理解元组计算,python,tuples,Python,Tuples,我是Python初学者,目前正在使用它。在大多数情况下,我理解元组,但有一件事让我感到困惑。我下面的例子是 print 'Number of animals in the new zoo is', \ len(new_zoo)-1+len(new_zoo[2]) 我知道我在元组中有一个元组,但我不明白为什么我需要使用-1,我已经去掉了-1,并尝试为new_zoo的第一个实例指定不同的参数,运行脚本并得到了错误的答案或错误 有人能解释一下为什么会这样,以及是否有更好的方法得到正确答案吗?

我是Python初学者,目前正在使用它。在大多数情况下,我理解元组,但有一件事让我感到困惑。我下面的例子是

print 'Number of animals in the new zoo is', \
    len(new_zoo)-1+len(new_zoo[2])
我知道我在
元组中有一个
元组
,但我不明白为什么我需要使用-1,我已经去掉了-1,并尝试为new_zoo的第一个实例指定不同的参数,运行脚本并得到了错误的答案或错误


有人能解释一下为什么会这样,以及是否有更好的方法得到正确答案吗?

是否使用
-1
完全取决于元组模型

如果该元组包含N个元素,但N-1个元素是动物,另外一个元素是另一个动物元组,那么您不希望将嵌套的元组计算为动物本身,所以您要减去一个

因此元组
('zebra'、'monkey'、('lion'、'tiger'、'puma')、'giraffe')
包含6种动物,而不是4或7种(外部元组的长度或外部元组的长度加上索引2处的元组):


这种计算需要知道元组中的内容,并且不能推广到Python中的所有元组。

首先,如果您还没有注意到,在Python 3.4中不需要使用本书中指定的反斜杠。
len(新动物园)=3
(猴子、骆驼和动物园是3个项目)-1给我们2,这是新动物园元组中的动物数量。
len(new_zoo[2])=3
,因为元组中的第三项是包含3种动物(蟒蛇、大象和企鹅)的动物园。 新的_-zoo元组中的第三项是嵌套元组,因此:

len(new_zoo)-1+len(new_zoo[2]) = 2 + 3 = 5

这就是为什么你需要减去1。

在不知道新动物园是什么或者它包含什么的情况下,我们不知道为什么你需要减去1.tnx作为你的答复,我现在明白了,我以后会尽量弄清楚@YK2:所以你有一个包含3个元素的元组,两个动物和另一个元组
len(new_zoo)
包括嵌套的元组,如果你不想将其作为动物计算,你需要从长度中减去1。我想我明白你想说什么,我的列表包含(猴子、骆驼(蟒蛇、大象、企鹅)monkey=0,camel=1,python,elephant,penguin=2为了读取以camel=1结尾的第一个元组,我们使用-1,因为我们添加了python,elephant,penguin=2,它本身就是另一个元组?我理解正确了吗?非常感谢您的帮助,我现在看到的这么简单的事情,真的让我很困惑!!
len(new_zoo)-1+len(new_zoo[2]) = 2 + 3 = 5