python迭代器中的布尔值

时间:2019-07-17 18:15:54

标签: python iterator boolean

我正在运行一个很长的脚本,这将起作用:

    # sample line 
    line =  '....,,,,.,..,.,.,.4GCCG.,..,,,.,.,,.2TG'

    # search for numbers in line
    numbers = re.search(["[0-9]", line)

    if numbers is not None:
       numbers = re.finditer("[0-9]", line)
       some_process_on_each(numbers)

但是在每行中两次搜索数字效率不高。

有没有一种方法可以比较从re.finditer("[0-9]", line)获得的callable_iterator和某种布尔值(也许我可以知道内存空间?),因此可以执行以下操作:

    # sample line 
    line =  '....,,,,.,..,.,.,.4GCCG.,..,,,.,.,,.2TG'

    # search for numbers in line
    numbers = re.finditer(["[0-9]", line)

    if numbers is ??:
        some_process_on_each(numbers)

谢谢

1 个答案:

答案 0 :(得分:1)

只需尝试迭代即可。

import re
line =  '....,,,,.,..,.,.,.4GCCG.,..,,,.,.,,.2TG'
for n in re.finditer("[0-9]", line):
    print(line[slice(*n.span())])
#4
#2

如果没有数字,则没有要迭代的东西。