所以我在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>]
你可能会明白为什么它会将计数器分开。因为每次该列表改变它都会重置计数器。
答案 0 :(得分:0)
您似乎需要为另一个级别构建代码。如果你试图解析段落,段落包含句子,而句子包含单词,那么你需要一个封闭的段落方法。然后每个段落将从零开始计算句子。如果不了解some_method()
的更多内容,就很难更具体。