有点像Python新手,但有可能做到以下几点吗?你知道吗
>>>random_dict=dict(a=2)
>>>addOnlyOneValue(random_dict)
{'a': 3}
>>>addOnlyOneValue(random_dict)
{'a': 3}
我所做的:
def addOnlyOneValue(random_dict):
random_dict2=random_dict #I thought random_dict and random_dict2 would be modified independently
for val in random_dict2.keys():
random_dict2[val]+=1
print (random_dict2)
但如果我这样做,我会得到以下结果:
>>>random_dict=dict(a=2)
>>>addOnlyOneValue(random_dict)
{'a': 3}
>>>addOnlyOneValue(random_dict)
{'a': 4}
有没有可能在addOnlyOneValue函数中将random_dict重置为它的原始值(这里random_dict=dict(a=2))?你知道吗
您要做的是copy()词典:
在您的示例中,您只是将
random_dict2
作为对random_dict
的引用—您想要的是创建一个具有相同值的新的random_dict2
(请注意,这是一个浅拷贝,因此如果您的字典有可变项,那么新字典将仍然指向这些项,这可能会导致看起来奇怪的行为)。你知道吗请注意,与手动循环不同,您可以使用dictionary comprehension:
字典理解是通过修改现有数据结构中的值来创建新字典的最佳方法。你知道吗
将字典(或除字符串或数字以外的任何其他对象)赋值给另一个变量会导致对该对象的引用赋值,它不会创建副本。您可以:
列表类似:
请注意,此副本是“浅”的,这意味着只复制列表,并且将包含对所包含对象的引用,而不是对象的副本。阅读有关copying in python的更多信息。你知道吗
相关问题 更多 >
编程相关推荐