字符串匹配:只有第一次迭代匹配是caugh

2024-09-30 04:27:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Python中创建一个小的迭代字符串匹配函数。当第一组匹配字符串被捕获时,我被难住了,但是第二组匹配字符串没有被捕获。我添加了一个字符串转换来确保对象是字符串。我的理解是==运算符匹配值,而不是对象。(如果我的术语有误,请纠正我)。任何帮助都将不胜感激。你知道吗

#!/usr/bin/python


import re


NameLG_file = open("Name2.txt", "r")
NameSM_file = open("Inc2.txt", "r")
SMList = []
LGList = []


# Assign LG to List and Format
for a in NameLG_file:
    a = a.strip('\n')
    a = a.replace('\"', '')
    a = str(a)
    LGList.extend([a])


# Assign SM to list and format
for c in NameSM_file:
    c = c.strip('\n')
    c = str(c)
    SMList.extend([c])


# Identify and list orphans.
for e in LGList:
    for f in SMList:
        if e == f:
            print True
            print e
            print f
            print ""
            # break
        else:
            print False
            print e
            print f
            print ""

NameLG_file.close()
NameSM_file.close()

Name2.txt包含

"teardown"
"Elite"
Binary

Inc2.txt包含

teardown
Elite

输出为:

True
teardown
teardown

False
teardown
Elite

False
Elite
teardown

False
Elite
Elite

False
Binary
teardown

False
Binary
Elite

因此,我希望匹配的精英字符串显示为真。提前谢谢!你知道吗


Tags: and字符串intxtfalseforfileprint
1条回答
网友
1楼 · 发布于 2024-09-30 04:27:58

在我看来,问题是您的文件使用windows EOL(\r\n) 因此,在执行.strip('\n')时,返回的值是“Elite\r”,而不是“Elite”

解决方案是使用strip()而不是strip('\n')

相关问题 更多 >

    热门问题