Skip to main content
 首页 » 编程设计

python之制作字典列表按值传递

2025年05月04日19qq78292959

听写列表有点头疼。

def funk(x): 
    for i in x: 
        i['a'] += 1 
        print i 
 
list1 = [{'a':1, 'b':2}, {'a':3, 'b':4}] 
funk(list1) 
print list1 

这将输出:

{'a': 2, 'b': 2} 
{'a': 4, 'b': 4} 
[{'a': 2, 'b': 2}, {'a': 4, 'b': 4}] 

但我想要这个:

{'a': 2, 'b': 2} 
{'a': 4, 'b': 4} 
[{'a':1, 'b':2}, {'a':3, 'b':4}] 

如何让 list1 保持不变? 例如:[{'a':1, 'b':2}, {'a':3, 'b':4}]

请您参考如下方法:

funk() 可以复制 x 并修改该副本,而不是修改原始的 x。

import copy 
 
def funk(x): 
    x = copy.deepcopy(x) 
    for i in x: 
        i['a'] += 1 
        print i 
 
list1 = [{'a':1, 'b':2}, {'a':3, 'b':4}] 
funk(list1) 
print list1