Skip to main content
 首页 » 编程设计

Python追加循环工作之谜

2025年05月04日12EasonJim

当我尝试在“for in”循环中填充列表时,我发现了一些“神秘”问题。

例子如下:

>>> params = [1,2,3,4,5] 
>>> el = {'param':0} 
>>> el 
{'param': 0} 
>>> list = [] 
>>> for param in params: 
...     el['param'] = param 
...     list.append(el) 
...  
>>> print(list) 
[{'param': 5}, {'param': 5}, {'param': 5}, {'param': 5}, {'param': 5}] 
>>>  

但我认为结果应该是

>>> print(list) 
[{'param': 1}, {'param': 2}, {'param': 3}, {'param': 4}, {'param': 5}] 
>>>  

如何解决这个问题?为什么实际结果与我心目中的结果不相似?

请您参考如下方法:

列表中的每个元素都包含对相同 字典的引用。这就是为什么您在每个元素中看到相同的数字。也许您想这样做:

params = [1,2,3,4,5] 
 
a = [] 
for param in params: 
    el = {'param': param} 
    a.append(el) 

此外,请注意使用您的变量名隐藏内置函数,例如 list。