对于真正微不足道的入门级python问题,我深表歉意。在
目前正在学习googlepython教程,并找到了一些如果我不确定的话可能会让我绊倒的东西-使用and'd值作为while循环执行的复合条件。在
通读它,似乎while循环在两个列表的长度都为正的情况下运行。因此,一旦两个列表的长度==0,while循环就会到达0并终止。在
我不确定如何从心理上分析这个问题——条件是,一旦两个长度都==0,那么and语句和0和0,给出一个负条件并终止。在
通读它时,我将其解析为“5”和“6”(如果实例5和6是列表的长度)。到目前为止,我还没有遇到过以这种方式使用while循环的情况(只使用了一天左右)。在
while len(list1) and len(list2):
谢谢。在
理解这一点的关键是^{} 语句。在
基本上,该函数将两个已排序的列表合并为一个包含两个列表的所有元素的列表。它是mergesort算法的一部分。其工作原理如下:
引用Python官方文档中的Built In Types Page:
x and y
根据:if x is false, then x, else y
给出结果本页进一步提到:
所以在您的问题中,它首先计算len(列表1)。如果为正,则第一个条件为真,然后计算第二个条件。如果这也是真的(即len(list2)>;=1,则进入循环。虽然从根本上说,这是一个和操作,但不同的是,如果第一个条件是错误的,我们就不需要评估第二个条件。这在某些情况下非常有用,因为第二个条件可能涉及耗时的计算。在
将继续循环,而list1和list2都不为空;如果其中一个列表为空,则循环将终止。在
(在布尔上下文中,除}之外的任何值都将计算为true。)
False
、None
、0
、""
、或{相关问题 更多 >
编程相关推荐