Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 我将字典附加到列表中,而打印时只得到列表字典中最后附加的内容_Python 3.x_List_Dictionary - Fatal编程技术网

Python 3.x 我将字典附加到列表中,而打印时只得到列表字典中最后附加的内容

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对象,因此当您对它进行变异时,对它的所有引用都会继续引用处于当前状态的

我的输出是: 100 1. 2. 101 3. 4. 100{'a':3,'b':4} 101{'a':3,'b':4}
我将字典附加到列表中,而打印时只得到列表字典中最后附加的内容。如何获取我在列表中附加的所有词典,以及为什么我没有获取我在列表中附加的第一个词典。

您需要在列表中附加一个新词典,否则您将附加对已修改值的旧列表的引用

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()