通过for循环中的嵌入式if语句计数

时间:2015-09-29 23:13:42

标签: python python-2.7

所以,我在python(2.7)中有一个脚本,它创建一个介于1和5000之间的1000000个数字的列表,然后在整个列表上运行for循环,检查每个元素是否符合多个嵌入式if语句。

例如:

i = 0
for number in random_list:
    i += 1
    if random_list[number] <= 3000:
        i += 1
        if random_list[number] <= 300:
            i += 1
            if random_list[number] <= 30:
                i += 1
                if random_list [number] <= 3:
                    i += 1
                    break
print i

重点是我希望看到在整个列表中发生了多少次“检查”。

不幸的是,我的i值小于列表中元素的总数,因为每个元素至少应检查一次,因此不应该这样。我得到的东西在1000到10000之间。

我确信有更多的pythonic方法可以做到这一点,所以任何关于如何实现我正在尝试的建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

extra = 0
values = (random_list[number] for i,number in enumerate(my_numbers))
for v in values:    
    extra += sum(v < x for x in [3000,300,30,3])
    if v < 3:break;

print i+extra

也许......