0

所以我正在遍历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>]

您可能会看到为什么它会拆分计数器。因为每次该列表更改时,它都会重置计数器。

4

1 回答 1

0

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

于 2013-06-12T23:02:05.150 回答