python - 与无关(忽略)字符的字符串比较

标签 python python-3.x string

我有两个列表,一个golden 字符串列表和一个measured 字符串列表。我必须逐个元素地比较这些列表。

字符串的长度完全相同。金字串中有标记为'X'的字符,不考虑比较。

例如:

Golden = [
    '023XX1FD', 'FEBFF1B6', 'XXXXXXXX', '????????', '00000XXX', 
    '00000000', '00000000', '00000000', '00000800'
]

Measured = [
    '0236C1FD', 'FEBFF1B6', '00F1FC3F', '????????', '00000000', 
    '00000000', '00000000', '00000000', '00000800'
]

'023XX1FD''0236C1FD' 的比较应该返回 true,因为我们应该只比较不等于 'X'< 的部分 在金线中。

对于这个例子,每个字符串的输出都是 True

最佳答案

您可以定义自己的字符串比较函数来逐一检查字符并进行比较,只要金色字符不是“Don't Care”值即可:

def myStringCompare(golden, measured, dont_care="X"):
    return (
        (len(golden) == len(measured)) and 
        all(g == m for g, m in zip(golden, measured) if g != dont_care)
    )

然后在列表理解中使用这个函数:

print([myStringCompare(a, b) for a, b in zip(Golden, Measured)])
#[True, True, True, True, True, True, True, True, True]

关于python - 与无关(忽略)字符的字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55518635/

相关文章:

python - 合并组内连续的记录

python - 比较没有额外内存的 ctypes 数组

python - 使用表单集将许多文件上传到一条记录,但效果不太好

python - 将字符串大写

c - 如何在c中读取文本文件,然后将每一行分割成标记?

c# - 如何确定一个字符串是否是一个有效的变量名?

python - 使用新的 "virtual"列保存基于类的 View 表单集项

python - 未找到命名游标的模块

python - 线性回归预测值错误 : "ValueError: shapes (1,1) and (132,132) not aligned: 1 (dim 1) != 132 (dim 0)"

python - 使用 python3 在文本文件中查找信息