代码之家  ›  专栏  ›  技术社区  ›  fc27

如果条件python循环不工作,请在中继续

  •  1
  • fc27  · 技术社区  · 3 年前
    a = ['AKDYYDSSGYHFDY', 'AKDDSSGYYFYFDY', 'AKDAGDYYYYGMDV']
    
    match = ['DS', 'DV', 'DY']
    
    counter = 0
    for i in a:
        for j in match:
            if j in i:
                print(i, j)
                counter = counter+1
                continue
    
    print(counter)
    

    结果是

    AKDYYDSSGYHFDY DS
    AKDYYDSSGYHFDY DY
    AKDDSSGYYFYFDY DS
    AKDDSSGYYFYFDY DY
    AKDAGDYYYYGMDV DV
    AKDAGDYYYYGMDV DY
    
    6
    
    

    我希望它能够识别列表a中第一个字符串中的第一个模式DS,然后移动到下一个元素。然而,它也开始识别DY。我做错了什么?感谢您的帮助。

    谢谢

    1 回复  |  直到 3 年前
        1
  •  0
  •   olegr    3 年前

    尝试替换 continue 具有 break 这样地

    a = ['AKDYYDSSGYHFDY', 'AKDDSSGYYFYFDY', 'AKDAGDYYYYGMDV']
    
    match = ['DS', 'DV', 'DY']
    
    counter = 0
    for i in a:
        for j in match:
            if j in i:
                print(i, j)
                counter = counter+1
                break
    
    print(counter)
    

    输出:

    AKDYYDSSGYHFDY DS
    AKDDSSGYYFYFDY DS
    AKDAGDYYYYGMDV DV
    3
    

    сontinue 实际上意味着您要进入下一个迭代 for 环既然你一直在里面 j 循环它不影响 i 循环并简单地在 j .

    打破 而是在上停止迭代 j 循环,让我们 一、