Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_Python_List - Fatal编程技术网

替换列表中对象中的属性--Python

替换列表中对象中的属性--Python,python,list,Python,List,如何更新对象中的属性,并且该对象位于列表中 class kas: nom ="a" p1="" p2="" def __init__(self,nom,p1,p2): self.nom = nom self.p1=p1 self.p2=p2 @staticmethod def acoter(nom,b1,b2,maliste): newlist=list() for

如何更新对象中的属性,并且该对象位于列表中

class kas:
    nom ="a"
    p1=""
    p2=""
    def __init__(self,nom,p1,p2):
        self.nom = nom
        self.p1=p1
        self.p2=p2

    @staticmethod
    def acoter(nom,b1,b2,maliste):
        newlist=list()
        for i,k in maliste:
            if nom==k.nom:
                 maliste.remove(i)
                 k.p1[0]=b1[0]
                 k.p2[0]=b2[0]
                 maliste.insert(i, k)

我如何更新对象k中的元素p1和maliste中的元素p1?

嗯……我不知道我是否明白你的问题。您的意思是要更新对象k中的元素p1,而maliste中的这个k也是更新的吗

我建议重新编写acoter方法,如下所示:

@staticmethod
def acoter(nom, b1, b2, maliste):
    for i, k in enumerate(maliste):
        if kas.nom == k.nom:
            k.p1[0] = kas.b1[0]
            k.p2[0] = kas.b2[0]
因为maliste是
list()
,您只需将对象
k
附加到列表中,所以我怀疑maliste:中I,k的
会抛出错误


要更新列表中对象的属性,只需获取对象的引用并更新其属性即可。所以我认为您不需要从maliste中删除并再次将此更新的对象插入maliste列表。另外,newlist列表是不需要的。

你能告诉我
maliste
参数应该是什么类型吗?在maliste
中,k是kas对象的意思吗?我只是一个索引吗?我想知道
maliste
maliste=list()的内容是什么,我把它放在了maliste.append(k)中