亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

與不關心(忽略)字符的字符串比較

與不關心(忽略)字符的字符串比較

米琪卡哇伊 2021-12-29 10:20:23
我有兩個列表,一個golden字符串列表和一個measured字符串列表。我必須逐個元素比較這些列表。字符串具有完全相同的長度。金色串中有標有 的字符,'X'在比較中不考慮。例如:Golden = [    '023XX1FD', 'FEBFF1B6', 'XXXXXXXX', '????????', '00000XXX',     '00000000', '00000000', '00000000', '00000800']Measured = [    '0236C1FD', 'FEBFF1B6', '00F1FC3F', '????????', '00000000',     '00000000', '00000000', '00000000', '00000800']和'023XX1FD'with 的比較'0236C1FD'應該返回真,因為我們應該只比較'X'金線中不等于的部分。對于此示例,輸出True針對每個字符串。
查看完整描述

3 回答

?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

可以定義自己的字符串比較函數,將字符一一遍歷并進行比較,只要金色字符不是“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]


查看完整回答
反對 回復 2021-12-29
?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

您可以使用

[all(char1 == 'X' or char1 == char2 for char1, char2 in zip(str1, str2)) for str1, str2 in zip(list1, list2)]



查看完整回答
反對 回復 2021-12-29
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

我已經能夠提出以下列表理解:


result_list = [

    all(

        [

            symbol == b[list_index][symbol_index]

            for symbol_index, symbol in enumerate(item)

            if symbol != "X"

        ]

    )

    for list_index, item in enumerate(a)

]



> [True, True, True, True, True, True, True, True, True]


查看完整回答
反對 回復 2021-12-29
  • 3 回答
  • 0 關注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號