给定字符串中奇数和偶数位置的字符,我们如何组合它们以获得python中的最终字符串?

2024-09-30 22:16:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道我们可以使用以下方法从数组中分离奇偶字符:

evenstring = orignalstring[::2]
oddstring = originalstring[1::2]

如果只给我“evenstring”和“oddstring”怎么办?如何反转它以获得python中的原始字符串


Tags: 方法字符串数组字符奇偶originalstringevenstringorignalstring
3条回答

您可以使用joinzip

out1 = ''.join(''.join(f for f in tup) for tup in zip(oddstring, evenstring))

例如:

oddstring = "13579"
evenstring = "24680"

out1 = ''.join(''.join(f for f in tup) for tup in zip(oddstring, evenstring))

print(out1)

输出:

1234567890

假设您知道哪一个是偶数,哪一个是奇数,这两个字符串将始终处于两种状态之一:

  • 等长-如果原始字符串为偶数
  • 如果原始字符串为奇数,则evenstring将长1个字符

然后你可以:

result = []
for i in range(len(oddstring)):
    result.extend([evenstring[i], oddstring[i]])
if len(evenstring) > len(oddstring):
    result.append(evenstring[-1])
result_str = "".join(result)

您还可以使用zip函数获得较短的解决方案。
请注意,此处的其他答案可能不适用于奇数长度字符串。

我想你在找我

originalstring = ''.join([''.join(x) for x in zip(evenstring, oddstring)])

如果长度不匹配,你可以这样做

if(len(oddstring) != len(evenstring)):
    originalstring = originalstring + evenstring[-1]

相关问题 更多 >