python - 这个 Python 循环可以更简洁地表达吗?

标签 python python-2.7 for-loop refactoring

我遇到了一些 Python v2.7 代码,我已将其重构为:

for ssid in (ssid for ssid in overlaps
             if ssid != subseq_id and ssid not in merged):

但我觉得应该有一种不用两个 for 语句来表达这一点的方法吗?

最佳答案

你可以使用filter():

for ssid in filter(lambda s: s != subseq_id and s not in merged, overlaps):
    # ...

或者您可以在循环中测试:

for ssid in overlaps:
    if ssid == subseq_id or ssid in merged:
      continue
    # ...

关于python - 这个 Python 循环可以更简洁地表达吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15146316/

相关文章:

java - for 循环如何工作,特别是 for(;;)?

java - for循环,除一

python - 如何将这些嵌套的 for 循环变成单个循环?

javascript - Python 与 Javascript 浮点运算给出了截然不同的答案。我究竟做错了什么?

python - 如何列出 Google 云端硬盘文件夹的所有文件、文件夹、子文件夹和子文件

python-2.7 - 以 0 开头的数字上的 int() 有什么作用?

python - PyDrive:无效的客户端 secret 文件

python - web2py git 集成 - 本地主机和 pythonanywhere

python - 如何通过用 python 编写解析器来提取与 C 程序的函数定义相关的起始行号?

php - 内部连接与 foreach 循环性能