gpt4 book ai didi

python - 合并两个字符串(逐个字符)并重复最短字符串的最后一个字符

转载 作者:太空狗 更新时间:2023-10-29 19:32:53 32 4
gpt4 key购买 nike

我有两个字符串(string1 和 string2)。

如果它们的长度相等,则该函数应返回一个字符串,该字符串由两个字符串中每个字符串的交替字符组成。

如果它们的长度不相等,则该函数通过重复最后一个字符直到它们的长度相同来扩展较短的字符串,然后交替两个字符串的字符。

例如,

extendedString("abc", "def") =>  "adbecf" 
extendedString("ab", "defg") => "adbebfbg"

我已经写了如果字符串长度相同则返回的部分,但我不知道如何重复最后一个字符。

def extendedString(string1, string2):
x = string1
y = string2
z = ""
if len(x) == len(y):
return "".join(i for j in zip(string1,string2) for i in j)

最佳答案

您可以使用 zip_longest function来自 itertools。
像 zip 一样工作,但让您能够填充空白(默认填充器是无,但您可以更改它:

import itertools

def extendedString(string1,string2):
filler = string2[-1] if len(string1)>len(string2) else string1[-1]
return "".join(i for j in itertools.zip_longest(string1, string2, fillvalue=filler) for i in j)

更新

将填充符添加到最短字符串的最后一个字符(以备不时之需)

In [50]: extendedString("abc","def")
Out[50]: 'adbecf'

In [51]: extendedString("ab","defg")
Out[51]: 'adbebfbg'

如果您使用的是 python2,则函数为 itertools.izip_longest

关于python - 合并两个字符串(逐个字符)并重复最短字符串的最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40434080/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com