Skip to main content
 首页 » 编程设计

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

2025年05月04日14落叶无声

我遇到了一些 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 
    # ...