我遇到了一個問題,我必須為 ex 明智地連接兩個字串元素:
str1 = "ABCD"
str2 = "EFGH"
output = "AEBFCGDH"
我寫了這段代碼
op = ''
op = op.join([i j for i, j in zip(str1, str2)])
print(op)
它有效,但我想知道兩個字串的長度是否不同:
str1 = "ABC"
str2 = "DEFGH"
output = "ADBECFGH"
or
str1 = "ABCDG"
str2 = "DEF"
output = "ADBECFDG"
我如何為此編碼?
uj5u.com熱心網友回復:
zip()只需切換zip_longest():
from itertools import zip_longest
str1 = "ABCDG"
str2 = "DEF"
output = ''.join([i j for i, j in zip_longest(str1, str2, fillvalue="")])
print(output) # ADBECFDG
uj5u.com熱心網友回復:
你可以取較短的字串,壓縮到它的長度,然后連接較長字串的剩余部分。例如:
str1 = 'ABC'
str2 = 'DEFGH'
op = ''
if len(str1)>len(str2):
op = op.join([i j for i, j in zip(str1, str2)]) str1[len(str2):]
else:
op = op.join([i j for i, j in zip(str1, str2)]) str2[len(str1):]
print(op) # output: ADBECFGH
zip() 只壓縮到兩個迭代中較短的那個。請參閱:https ://docs.python.org/3.3/library/functions.html#zip
uj5u.com熱心網友回復:
簡單的解決方案:
str1 = "ABCDG"
str2 = "DEF"
suffix_start = min(len(str1), len(str2))
suffix = str1[suffix_start:] str2[suffix_start:]
output = ''.join([i j for i, j in zip(str1, str2)]) suffix
print(output) # ADBECFDG
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/473912.html
上一篇:如何分離和替換特定的刮掉的字串?
