为真正微不足道的入门级 python 问题道歉。
目前正在通过谷歌 Python 教程工作,如果我没有确定它可能会绊倒我 - 使用 and'd 值作为执行 while 循环的复合条件。
通读它看起来好像 while 循环在运行,而两个列表的长度都是正数。因此,一旦两个列表的长度 == 0,while 循环就会达到 0 并终止。
我不确定如何在心理上解析这个 - 条件是否是一旦两个长度 == 0 然后 and 语句和 0 和 0,给出否定条件并终止。
通过阅读它,我将其解析为 while '5' 和 '6' (例如,如果 5 和 6 是列表的长度)。到目前为止,我还没有遇到过以这种方式使用 while 循环的情况(只使用了一天左右)。
我不明白的代码位(抽象行)
while len(list1) and len(list2):
上下文中的代码
def linear_merge(list1, list2):
result = []
while len(list1) and len(list2):
if list1[0] < list2[0]:
result.append(list1.pop(0))
else:
result.append(list2.pop(0))
result.extend(list1)
result.extend(list2)
return result
非常感谢。