Python 理解元组计算
我是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的第一个实例指定不同的参数,运行脚本并得到了错误的答案或错误 有人能解释一下为什么会这样,以及是否有更好的方法得到正确答案吗?
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