循环遍历python中属性的输出时如何保持循环计数?

时间:2013-06-12 22:46:05

标签: python loops properties counter

所以我在python中循环一个属性。 顺便说一句,这只是示例代码......而不是我正在使用的代码: 我不想发布我正在做的事情,因为它有数百行。 但我认为这表达了我的观点。

@property
def tokenize(self):
    (lots of compex operations)

   return tokens

在另一种方法中,我循环遍历该属性的输出

def anther_method(self):
   count = 0
   for a in self.tokenize:
       count += 1

但问题是,如果该属性输出一个列表,让我们说...然后输出另一个列表,计数器将返回到零,因此我不知道如何跟踪我的循环计数。有没有办法保持我的计数,而不对输出做一些列表理解,因为我不想保持此属性返回的数据类型相同。

对此的任何帮助将不胜感激。

这是我循环之前的输出示例:

[<__main__.Sentence object at 0x02494D30>]
[<__main__.Sentence object at 0x02494E10>, <__main__.Character object at 0x023EE470>, <__main__.Sentence object at 0x02494D50>, <__main__.Character object at 0x023EEE90>, <__main__.Sentence object at 0x02494D90>, <__main__.Character object at 0x023F53D0>, <__main__.Character object at 0x023F53F0>, <__main__.Character object at 0x023F5410>, <__main__.Sentence object at 0x02494F10>, <__main__.Character object at 0x023F5470>, <__main__.Sentence object at 0x02494E50>, <__main__.Character object at 0x023FB230>, <__main__.Sentence object at 0x02494E30>, <__main__.Character object at 0x023FB510>, <__main__.Sentence object at 0x02494DB0>, <__main__.Character object at 0x023FB770>, <__main__.Sentence object at 0x02494D30>]
[<__main__.Sentence object at 0x02494DB0>, <__main__.Character object at 0x02401530>, <__main__.Sentence object at 0x02494D30>]
[<__main__.Sentence object at 0x02494F10>, <__main__.Character object at 0x02409850>, <__main__.Sentence object at 0x02494D30>]
[<__main__.Sentence object at 0x02494D30>]
[<__main__.Sentence object at 0x02494D30>]
[<__main__.Sentence object at 0x02494F10>, <__main__.Character object at 0x02413870>, <__main__.Sentence object at 0x02494D30>]
[<__main__.Sentence object at 0x02494D30>]
[<__main__.Sentence object at 0x02494FD0>, <__main__.Character object at 0x0241E3F0>, <__main__.Sentence object at 0x02494E90>, <__main__.Character object at 0x0241E4F0>, <__main__.Sentence object at 0x02494DB0>, <__main__.Character object at 0x0241E790>, <__main__.Character object at 0x0241E7B0>, <__main__.Character object at 0x0241E7D0>, <__main__.Character object at 0x0241E7F0>, <__main__.Character object at 0x0241E810>]
[<__main__.Sentence object at 0x02494D30>, <__main__.Character object at 0x0241EB10>, <__main__.Character object at 0x0241EB30>, <__main__.Character object at 0x0241EB50>, <__main__.Character object at 0x0241EB70>, <__main__.Sentence object at 0x02494E90>, <__main__.Character object at 0x0241EC10>, <__main__.Sentence object at 0x02494E50>, <__main__.Character object at 0x02494330>, <__main__.Character object at 0x02494350>, <__main__.Character object at 0x02494370>, <__main__.Sentence object at 0x02494D90>, <__main__.Character object at 0x02494450>, <__main__.Sentence object at 0x02494F10>, <__main__.Character object at 0x02494590>, <__main__.Sentence object at 0x02494FD0>]

你可能会明白为什么它会将计数器分开。因为每次该列表改变它都会重置计数器。

1 个答案:

答案 0 :(得分:0)

您似乎需要为另一个级别构建代码。如果你试图解析段落,段落包含句子,而句子包含单词,那么你需要一个封闭的段落方法。然后每个段落将从零开始计算句子。如果不了解some_method()的更多内容,就很难更具体。