#python
关于循环语句里面的变量有什么办法保留下来
x = "完成排查——1"
y = "完成排查——2"
z = "完成排查——3"
for i in [x,y,z]:
i = i.replace('完成','')
希望通过循环把每个字符中的‘完成’去掉,但循环内的变量输出不出来
请问错误在哪,有什么办法解决
尝试一下这种方法,将变量名与对象分离处理,修改完毕后再重新声明
x = "完成排查——1"
y = "完成排查——2"
z = "完成排查——3"
a=['x','y','z']
b=[]
for i in a:
b.append(eval(i))
for i in range(len(b)):
print(b[i])
b[i]=b[i].replace('完成','')
exec('%s = b[i]'%a[i])
x,y,z
缩进看不出来啊
x = "完成排查——1"
y = "完成排查——2"
z = "完成排查——3"
c=[x,y,z]
for i in range(len(c)):
c[i] = c[i].replace('完成','')
print(c)
因为for i in [x,y,z]中,i获取到的是x,y,z的值,而并没有指向x,y,z的地址
所以当你执行i = i.replace('完成','')的时候,并没有改变x,y,z
如果你想要改变x,y,z,但又想用循环,可以这样
x,y,z=map(lambda i:i.replace('完成',''),[x,y,z])
或者x,y,z=[i.replace('完成','') for i in [x,y,z]]
你用“”替换了“完成”,但是没保存啊,又没输出替换后的,你输出的还是之前的x,y,z
x = "完成排查——1"
y = "完成排查——2"
z = "完成排查——3"
for i in [x,y,z]:
i = i.replace('完成','')
print(i)
x = "完成排查——1"
y = "完成排查——2"
z = "完成排查——3"
for i in [x,y,z]:
i = i.replace('完成','')
print(i)
你在循环体中替换之后只是将替换后得到的结果又赋值给了临时变量i,想要输出替换后的结果,要么在循环体中打印出来,要么将你的x,y,z放到列表中,循环替换列表中的每一个元素,最后输出列表。
方案一:
x = "完成排查——1"
y = "完成排查——2"
z = "完成排查——3"
for i in l:
i = i.replace('完成', '')
print(i)
输出:
排查——1
排查——2
排查——3
方案二:
x = "完成排查——1"
y = "完成排查——2"
z = "完成排查——3"
l = [x, y, z]
for j in range(0, len(l)):
l[j] = l[j].replace('完成', '')
print(l)
输出:
['排查——1', '排查——2', '排查——3']