Python 3.x 在python中修改列表
谁能解释一下为什么我在列表的末尾得到一个三,if语句检查Python 3.x 在python中修改列表,python-3.x,Python 3.x,谁能解释一下为什么我在列表的末尾得到一个三,if语句检查x列表中的元素是否等于定义的val x = [0,1,2,2,3,0,4,2] val = 2 print (x) val =2 for i in range(len(x)): for j in range(len(x)-1 , 0 , -1 ): if x[i] == val and x[j] != val: x[i] , x[j] = x[j] , x[i] print (x) 使用此代
x
列表中的元素是否等于定义的val
x = [0,1,2,2,3,0,4,2]
val = 2
print (x)
val =2
for i in range(len(x)):
for j in range(len(x)-1 , 0 , -1 ):
if x[i] == val and x[j] != val:
x[i] , x[j] = x[j] , x[i]
print (x)
使用此代码:
x = [0,1,2,2,3,0,4,2]
val = 2
print (x)
val =2
for i in range(len(x)):
for j in range(len(x)-1 , 0 , -1 ):
if x[i] == val and x[j] != val:
print("x[",i,"]=",x[i]," ; x[",j,"]=",x[j])
x[i] , x[j] = x[j] , x[i]
print(x)
print (x)
我得到了这个输出:
[0, 1, 2, 2, 3, 0, 4, 2]
x[ 2 ]= 2 ; x[ 6 ]= 4
[0, 1, 4, 2, 3, 0, 2, 2]
x[ 3 ]= 2 ; x[ 5 ]= 0
[0, 1, 4, 0, 3, 2, 2, 2]
x[ 5 ]= 2 ; x[ 4 ]= 3
[0, 1, 4, 0, 2, 3, 2, 2]
x[ 6 ]= 2 ; x[ 5 ]= 3
[0, 1, 4, 0, 2, 2, 3, 2]
x[ 7 ]= 2 ; x[ 6 ]= 3
[0, 1, 4, 0, 2, 2, 2, 3]
[0, 1, 4, 0, 2, 2, 2, 3]
注意,范围(len(x)-1,0,-1)的解释类似于[7,6,5,4,3,2,1]。当i=7和j=6(在循环末端)时,x[i]=2;x[j]=3所以3被附加到x[7]。只需在每次迭代结束时打印x,然后自己看看替换是如何进行的