python - python迭代器中的布尔值
问题描述
我正在运行一个非常冗长的脚本,这将起作用:
# 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)
但是在每行中搜索两次数字效率不高。
有没有办法将获得的 callable_iteratorre.finditer("[0-9]", line)
与某物进行比较以获得布尔值(也许我可以知道内存空间?)所以我可以执行以下操作:
# sample line
line = '....,,,,.,..,.,.,.4GCCG.,..,,,.,.,,.2TG'
# search for numbers in line
numbers = re.finditer(["[0-9]", line)
if numbers is ??:
some_process_on_each(numbers)
谢谢
解决方案
只是尝试迭代。
import re
line = '....,,,,.,..,.,.,.4GCCG.,..,,,.,.,,.2TG'
for n in re.finditer("[0-9]", line):
print(line[slice(*n.span())])
#4
#2
如果没有数字,则没有可迭代的内容。
推荐阅读
- python - 如何用预定的解决方案制作数独板
- javascript - 如何使用 Jquery 实现动态引导 4 手风琴
- r - 如何使用 jtools 包中的 coef_plot 在系数图中更好地标记分类变量
- apache-spark - Pyspark:Python 工作者因 LLVM 错误而崩溃
- python - 用 Pandas 计算零的数量
- javascript - 草稿编辑器中的突出显示功能不起作用
- c# - 使用 Firebase 通知打开链接/PWA
- pdf - 在 vb6 中打印 .pdf 而无需预览 Adobe Reader
- node.js - 如何在 Node.js 缓冲区中存储对象?
- node.js - 使用 SQLite3 构建 Electron 应用程序时出错:npm ERR!代码生命周期