为什么选B呢 下面代码的输出结果是()

img


下面代码的输出结果是()

a= [9,6,4,5]
N = len(a)
for i in range(int(len(a) / 2)):
a[i],a[N-i-1] = a[N-i-1],a[i]
print(a)


a= [9,6,4,5]
N = len(a)
for i in range(int(len(a) / 2)): # range(0, 2),即列表[0,1],
    a[i],a[N-i-1] = a[N-i-1],a[i] #值交换,如第一次a[0], a[3]=a[3], a[0]
print(a)

遍历列表前半段,与后半段镜像位置交接值

可以稍作修改为以下代码:

a= [9,6,4,5,1]
N = len(a)
for i in range(len(a)//2):
    a[i],a[~i+N] = a[~i+N],a[i]
print(a)

你首先知道range(int(len(a) / 2))这个等价于range(2)
所以后续循环i 的取值是0和1
后面的值交换就是 a[0] 和 a[3] 交换,a[1] 和 a[2]交换

所以最后的结果就是B