Python 3.x 我将字典附加到列表中,而打印时只得到列表字典中最后附加的内容
我的输出是: 100 1. 2. 101 3. 4. 100{'a':3,'b':4} 101{'a':3,'b':4}Python 3.x 我将字典附加到列表中,而打印时只得到列表字典中最后附加的内容,python-3.x,list,dictionary,Python 3.x,List,Dictionary,我的输出是: 100 1. 2. 101 3. 4. 100{'a':3,'b':4} 101{'a':3,'b':4} 我将字典附加到列表中,而打印时只得到列表字典中最后附加的内容。如何获取我在列表中附加的所有词典,以及为什么我没有获取我在列表中附加的第一个词典。您需要在列表中附加一个新词典,否则您将附加对已修改值的旧列表的引用 Python从不隐式复制对象。当您设置dict2=dict1时,您使它们引用同一个确切的dict对象,因此当您对它进行变异时,对它的所有引用都会继续引用处于当前状态的
我将字典附加到列表中,而打印时只得到列表字典中最后附加的内容。如何获取我在列表中附加的所有词典,以及为什么我没有获取我在列表中附加的第一个词典。您需要在列表中附加一个新词典,否则您将附加对已修改值的旧列表的引用 Python从不隐式复制对象。当您设置dict2=dict1时,您使它们引用同一个确切的dict对象,因此当您对它进行变异时,对它的所有引用都会继续引用处于当前状态的对象。 l=[] 对于范围2中的i: id=输入 a=输入 b=初始输入 o=oneid,{a:a,b:b} l、 附录 o、 打印乐趣 将d={}带到循环中。
class one:
def __init__(self,id,d):
self.id=id
self.d=d
def printfun(self):
for i in l:
print(i.id,i.d)
l=[]
d={}
for i in range(2):
id=int(input())
d["a"]=int(input())
d["b"]=int(input())
o=one(id,d)
l.append(o)
o.printfun()