Python,函数,这里发生了什么?if lst1[index]!=lst2[len(lst2)-1-索引]



有人能帮我理解第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]

意思是:

  1. lst1[index]=lst1的当前元素。已使用当前循环索引检索到
  2. CCD_ 2=lst2的元素,该元素是CCD_

总的来说,这意味着它检查lst1的当前循环元素是否不等于索引处的元素,该元素通过lst2的长度减去1和循环的当前索引来检索。

  • lst1[index]正在检查索引位置的元素,索引从0开始
  • lst2[len(lst2) - 1 - index]正在检查lst2last-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个位置开始,最后一个列表从最后一个位置开始。现在应用你的条件,希望你会有一个好主意。

相关内容

最新更新