首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python循环和追加到列表

python循环和追加到列表
EN

Stack Overflow用户
提问于 2012-11-15 23:25:46
回答 1查看 167关注 0票数 0

我有一个相对较小的python程序,它(部分)如下所示:

代码语言:javascript
复制
puredata=ClassOne()
stuff=ClassTwo()

for i in range(0,len(chunks)):
    print "this is in loop  i  = %d" % i
    temp=chunks[i]
    #do some stuff and get variable data.

    for k in range(0,len(data)):
        print "this is in loop  k  = %d" % k
        if puredata.tb in str(temp[k])!=False:
            print "This is valid data..continue calculations"
            puredata.pl,puredata.pt,puredata.pi=stuff.extracts(data[k])
            print "Length of pl puredata = %d" % len(puredata.pl)
            print "Length of pt puredata = %d" % len(puredata.pt)
            print "Length of pi puredata = %d" % len(puredata.pi)
        else:
            pass

stuff.extracts()输出3个列表(类似于self.a、self.b、self.c),然后我将它们传递给puredata.pl、puredata.pt、puredata.pi,ClassOne简单地调用列表pl、pt、pi。ClassTwo看起来大致是这样的:

代码语言:javascript
复制
class ClassTwo():
    def __init__(self):
      self.a=[]
      self.b=[]
      self.c=[]
# Start calculations
    def extracts(self,soup):
        # do stat modelling and calculations
          return self.a, self.b,self.c

当我运行循环时,我发现数据似乎“附加”到了puredata.pl、puredata.pt、puredata.pi之后,尽管我从未在代码中的任何地方使用过.append()。所以,在第一个循环中,puredata.pl,puredata.pt,puredata.pi的长度是10,在下一个循环中,它变成了20,然后是30..and,依此类推。

我发现这非常奇怪--我不能理解它。在某种程度上,这就是我想要的(我的意思是将数据追加到列表中),但是我不明白为什么它要追加,尽管我没有使用.append()。

抱歉,如果这是一个kn00b问题- python新手在这里。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-16 00:34:11

根据您提供的内容,最有可能出现的问题是,每次调用stuff.extracts时,stuff.a、stuff.b和stuff.c都会增长。如果在ClassTwo中执行的统计建模和计算对于每个datak都是唯一的,那么在循环中声明stuff = ClassTwo()应该可以解决您的问题。

例如:

代码语言:javascript
复制
for k in range(0,len(data)):
    stuff = ClassTwo()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13400638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档