有人能帮我理解第3行吗?
def reversed_list(lst1, lst2):
for index in range(len(lst1)):
if lst1[index] != lst2[len(lst2) - 1 - index]:
return False
return True
感谢
函数reversed_list所做的是测试lst1是否是lst2的反向版本(倒数也是真的(。
让我们假设lst1是:
lst1 = [0, 1, 2, 3]
如果lst2是被反转的lst1版本,则lst2必须按顺序包含函数的以下值:
lst2 = [3, 2, 1, 0]
在本例中,len(lst1(等于4,并且len(lst2(果条件正在验证,则在第一次迭代中,如果值lst1[0(索引(]与lst2[4。
注意,如果lst2如下所示,函数reversed_list也将返回true:
lst2 = [20, 15, 10, 5, 3, 2, 1, 0]
意思是:
lst1[index]
=lst1的当前元素。已使用当前循环索引检索到- CCD_ 2=lst2的元素,该元素是CCD_
总的来说,这意味着它检查lst1
的当前循环元素是否不等于索引处的元素,该元素通过lst2
的长度减去1和循环的当前索引来检索。
lst1[index]
正在检查索引位置的元素,索引从0开始lst2[len(lst2) - 1 - index]
正在检查lst2
的last-1
位置,并且还从最后一个位置减去当前索引位置
也就是说,如果你检查迭代,那么你会有一个清晰的想法。我正在通过下面的两个列表
list_1 = [1, 2, 3, 4, 5, 6, 7]
list_2 = [1, 2, 3, 4, 5, 6, 7]
现在检查以下代码的迭代
def reversed_list(lst1, lst2):
for index in range(len(lst1)):
print(lst1[index], lst2[len(lst2) - 1 - index])
# if lst1[index] != lst2[len(lst2) - 1 - index]:
# return False
return True
list_1 = [1, 2, 3, 4, 5, 6, 7]
list_2 = [1, 2, 3, 4, 5, 6, 7]
print(reversed_list(list_1, list_2))
检查lst1[index], lst2[len(lst2) - 1 - index]
的输出
1 7
2 6
3 5
4 4
5 3
6 2
7 1
第一个列表从第0个位置开始,最后一个列表从最后一个位置开始。现在应用你的条件,希望你会有一个好主意。