在对象上高效地迭代

2024-10-01 00:18:05 发布

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

我用Python设计了自己的类,如下所示:

class Main:
    def __init__(self):
        self.list = list() # Contains TestA objects

class TestA:
    def __init__(self, start_time, end_time):
        self.elements = list() # Contains TestB objects
        self.start_time = start_time
        self.end_time = end_time

class TestB:
    def __init__(self, timestamp):
        self.timestamp = timestamp

Main类的列表包含TestA类的对象,TestA类的列表包含TestB类的对象。示例如下:

testB1 = TestB(121)
testB2 = TestB(155)
testB3 = TestB(891)
testB4 = TestB(901)

testA1 = TestA(100, 200)
testA1.elements.append(testB1)
testA1.elements.append(testB2)

testA2 = TestA(500, 1000)
testA2.elements.append(testB3)
testA2.elements.append(testB4)


main = Main()
main.list.append(testA1)
main.list.append(testA2)

现在我想根据时间戳过滤对象。首先,我要检索在特定范围内具有TestA.start_timeTestA.end_time的所有TestA对象。其次,我想检索所有TestB对象,这些对象在给定范围内具有TestB.timestamps。当然,我可以在所有TestATestB对象上循环,但是如果有很多对象,这是低效的

有没有更有效的方法


Tags: 对象selftimemaindefelementsstartlist