我如何简化if语句?

问题描述 投票:0回答:1

如何简化?在此先感谢:)

a_list = []

for a, blah in enumerate(bunch_of_As.blahs):
    if a.name == "WHATEVER":
        for msg in a:
            if msg.type == "value 1":
                a_list.append(a)
            elif msg.type == "value 2":
                if msg.time != 0:
                    do_something(a)
                a_list.remove(a)
python python-3.x for-loop if-statement simplify
1个回答
1
投票

可以简化此过程,因为您多次不必要地在a_list上添加和删除a元素

for a in bunch_of_As:
    if a.name == "WHATEVER":
        counter1 = 0
        counter2 = 0
        for msg in a:
            if msg.type == "value 1":
               counter1 += 1
            elif msg.type == "value 2":
               counter1 += -1
               if msg.time != 0:
                  counter2 += 1
       for n in range(counter1):
           a_list.append(a)

       for n in range(counter2):
           do_something(a)

只有我有两个问题或假设,我认为“值1”的数量=>(大于或等于)num“值2”并且对a的do_something(a)效果为null

显然,这是更多的代码行,但是减少了附加删除的不必要过程

© www.soinside.com 2019 - 2024. All rights reserved.