Skip to main content
 首页 » 编程设计

python之更新列表的元素

2025年05月04日12davidwang456

为什么元素不在 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() 的使用,这是一种进行检查的好方法。