为什么元素不在 for 循环中更新?这让我明白了
met_dir = r'D:\09052012\run\fout'
out_dir = r'D:\inpassingstest\test_cmd'
for c_dir in [met_dir,out_dir]:
if c_dir[-1:] != '\\':
c_dir += '\\'
print c_dir
print met_dir
>>>D:\09052012\run\fout\
>>>D:\inpassingstest\test_cmd\
>>>D:\09052012\run\fout
当我使用索引来寻址元素时,也会发生同样的情况。
请您参考如下方法:
字符串是不可变的对象,也就是说,你不能改变它,只能创建新的字符串。这意味着当您追加到字符串时,原始内容保持不变。对此的简单解决方案是列表推导式,以创建新字符串的新列表:
>>> [c_dir + "\\" if not c_dir.endswith("\\") else c_dir for c_dir in (met_dir, out_dir)]
['D:\\09052012\\run\\fout\\', 'D:\\inpassingstest\\test_cmd\\']
哪个可以轻松解包回值:
met_dir, out_dir = [...]
请注意我对 str.endswith() 的使用,这是一种进行检查的好方法。
