我有两个列表,一个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/