a = 'abcdfjghij'
b = 'abcdfjghi'
Output : j
def diff(a, b):
string=''
for val in a:
if val not in b:
string=val
return string
a = 'abcdfjghij'
b = 'abcdfjghi'
print(diff(a,b))
此代碼回傳一個空字串。有什么解決辦法嗎?
uj5u.com熱心網友回復:
collections.Counter
標準庫中的可用于對多集進行建模,因此它可以跟蹤重復的元素。它是一個dict
高性能的子類,并為計數目的擴展了它的功能。要找到兩個字串之間的差異,您可以模仿集合之間的對稱差異。
from collections import Counter
a = 'abcdfjghij'
b = 'abcdfjghi'
ca = Counter(a)
cb = Counter(b)
diff = (cb-ca) (ca-cb) # symmetric difference
print(diff)
#Counter({'j': 1})
uj5u.com熱心網友回復:
根據您的問題,很難確切知道您想要什么。喜歡應該
'abc'
'efg'
return 'abc' 或 'efg' 還是總是只添加一個字符?
這是一個解決方案,它解釋了多個不同的字符,但仍然可能無法給出您的確切輸出。
def diff(a, b):
string = ''
if(len(a) >= len(b)):
longString = a
shortString = b
else:
longString = b
shortString = a
for i in range(len(longString)):
if(i >= len(shortString) or longString[i] != shortString[i]):
string = longString[i]
return string
a = 'abcdfjghij'
b = 'abcdfjghi'
print(diff(a,b))
如果一個字串只添加了一個字符,并且 i 可以在字串中的任何位置,您可以更改
string = longString[i]
至
string = longString[i]
uj5u.com熱心網友回復:
在您的示例中,兩個字串之間有 2 個區別:字母 g 和 j。我測驗了您的代碼,它回傳 g,因為來自的所有其他字母都在 b 中:
a = 'abcdfjghij'
b = 'abcdfjhi'
def diff(a, b):
string=''
for val in a:
if val not in b:
string=val
return string
print(diff(a,b))
uj5u.com熱心網友回復:
更新
但是你在 a 中有兩次 j。所以它第一次看到 j 時,它會看到 b 并看到 aj,一切都很好。對于第二個 j,它再次查看并且仍然看到 aj,一切都很好。您是否要檢查每個字母是否與同一序列中的另一個字母相同,那么您應該嘗試以下操作:
a = 'abcdfjghij'
b = 'abcdfjghi'
def diff(a, b):
if len(a)>len(b):
smallest_len = len(b)
for index, value in enumerate(a[:smallest_len]):
if a[index] != b[index]:
print(f'a value {a[index]} at index {index} does not match b value {b[index]}')
if len(a) == len(b):
pass
else:
print(f'Extra Values in A Are {a[smallest_len:]}')
else:
smallest_len = len(a)
for index, value in enumerate(b[:smallest_len]):
if a[index] != b[index]:
print(f'a value {a[index]} at index {index} does not match b value {b[index]}')
if len(a) == len(b):
pass
else:
print(f'Extra Values in B Are {b[smallest_len:]}')
diff(a, b)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/505801.html
上一篇:是否可以在ASPNetCore6MinimalAPI中使用自定義RequireAuthorization和AllowAnonymous進行自定義中間件身份驗證?