我无法计算出这段代码的输出:
lst = [3,1,4,-2]
print(lst[lst[-1]])
# output 4
或
lst = [3,1,4,-2]
print(lst[lst[3]])
# output 4
lst[0] = 3
lst[lst[0]] = lst[3] = -2
lst[-4] = 3
lst[lst[-4]] = lst[3] = -2
list=[3,1,4,-2]
print(list[list[0]])
-2
Explanation:
list[0] = 3
substitute this value in list[list[0]] which makes it list[3]
finally print(list[3]) whose output will be -2
list=[3,1,4,-2]
print(list[list[-4]])
-2
Explanation:
list[-4] is 3
substitute this value in list[list[-4]] which makes it list[3]
finally print(list[3]) whose output will be -2
这样想:lst[-4]
和lst[0]
只返回数字(分别为-2和3(。
因此,
lst = [3,1,4,-2]
print(lst[lst[0]])
与没有什么不同
lst = [3,1,4,-2]
print(lst[3])
考虑第二个例子
lst = [3,1,4,-2]
print(lst[lst[-4]])
lst[-4]
返回3
,-1
的索引值给出最后一个元素,-2
给出数组的倒数第二个元素,同样,-4
返回倒数第四个元素。
由于lst[-4]
返回3
,我们有print(lst[3])
,它返回数组的第三个索引元素,即-2
,考虑到0是第一个元素。
在第一个示例中,它与上面类似,其中最终输出应该是-2
我们可以使用index
运算符[]
来访问列表中的项目。索引从0开始。因此,具有5个元素的列表将具有从0到4的索引。尝试访问除此之外的元素将引发IndexError
。
Python还允许对其序列进行负索引。-1的index
表示最后一项,-2表示倒数第二项,依此类推
从您的示例
lst = [3, 1, 4, -2]
0 1 2 3 # +ve index
-4 -3 -2 -1 # -ve index
>>> print(lst[lst[0]]) # lst[0] is 3 ==> lst[3] is -2
-2
>>> print(lst[lst[-4]]) # lst[-4] is 3 ==> lst[3] is -2
-2