考虑:
args = ['-sdfkj']
print args
for arg in args:
print arg.replace("-", '')
arg = arg.replace("-", '')
print args这产生了:
['-sdfkj']
sdfkj
['-sdfkj']我以为它是['sdfkj']。
循环中的arg是副本吗?
它的行为就好像它是一个副本(或者可能是一个不可变的思想家,但是我希望会抛出一个错误.)
注意:我可以通过理解列表得到正确的行为。我对上述行为的原因感到好奇。
发布于 2010-07-08 17:56:29
如果要修改实际列表,则必须将更改具体分配给列表'args.‘’。
即
for arg in args:
if arg == "-":
args[arg] = args[arg].replace("-", '')https://stackoverflow.com/questions/3206375
复制相似问题