Python两个嵌套循环:为什么第二个循环只运行一次?

时间:2017-02-22 13:54:05

标签: python loops

我使用python 2.7来循环两个列表,希望对于'mcode.txt'中的每个元素,如果它存在于'info.txt'中的一行中,那么它会在'mcode.txt'中打印元素并且'info.txt'中的部分行。

'mcode.txt'看起来像这样:

M010000000000316660
M010000000000439672
M010000000000346627
M010000000000265328

'info.txt'看起来像这样:

H05-01-001A M010000000000439672
H05-01-002A M010000000000316660
H05-01-003A M010000000000346627
H05-01-004A M010000000000265328

这是我的代码。

import re
with open('mcode.txt') as mcodetext:
    with open('info.txt') as infotext:
        for mcode in mcodetext:
            for info in infotext:
                if mcode in info:
                    location = re.findall('(H..........)',info)
                    print mcode,location

输出:

M010000000000316660
['H05-01-002A']

期望的输出:

M010000000000316660
['H05-01-002A']
M010000000000439672
['H05-01-001A']
M010000000000346627
['H05-01-003A']
M010000000000265328
['H05-01-004A']

我尝试在不同的行之后添加'print'以查看确实出错的地方。似乎第二个循环只运行一次然后停止。

如果您能让我知道如何正确使用代码,我将非常感激。非常感谢!

0 个答案:

没有答案