Python附加到对象列表中的对象中的列表

2024-10-03 21:27:52 发布

您现在位置:Python中文网/ 问答频道 /正文

举下面的例子:

from pprint import pprint
class ResultsClass:
    def __init__(self, 
    name = None, 
    counts = []): 
        self.name = name
        self.counts = counts

objs = [ResultsClass() for i in range(5)]
i = 0 
while i < 4:
    objs[i].counts.append("count is " + str(i))
    pprint(objs[i].counts)
    i = i+1

结果是:

['count is 0']
['count is 0', 'count is 1']
['count is 0', 'count is 1', 'count is 2']
['count is 0', 'count is 1', 'count is 2', 'count is 3']

我还尝试了以下代码,但没有成功:

i = 0
objs = [ResultsClass() for i in range(5)]
for obj in objs:
    obj.counts.append("count is " + str(i))
    pprint(obj.counts)
    i = +1

我要做的是让ResultClass的每个实例都有一个不同的计数列表,如下所示:

['count is 0'] 
['count is 1'] 
['count is 2'] 
['count is 3']

来自PowerShell的背景,我认为Python会遍历对象的每个实例,并附加到其中的特定列表中;相反,它似乎附加到对象列表和计数属性的所有实例

达到预期效果的最佳方法是什么


Tags: 实例nameinselfobj列表foris
1条回答
网友
1楼 · 发布于 2024-10-03 21:27:52
from pprint import pprint
class ResultsClass:
    def __init__(self, 
    name = None): 
        self.name = name
        self.counts = []

objs = [ResultsClass() for i in range(5)]
i = 0 
while i < 4:
    objs[i].counts.append("count is " + str(i))
    pprint(objs[i].counts)
    i = i+1

相关问题 更多 >