在Python中交换字符串中的每个第二个字符

3 投票
7 回答
4318 浏览
提问于 2025-04-17 05:01

我遇到了一个问题:我想在Python中写一个函数,给定一个字符串,返回一个字符串,其中每两个字符的位置互换

比如说,给定字符串 "ABCDEF",它应该返回 "BADCFE"。

这个字符串的长度会保证是偶数。

你能帮我看看怎么用Python实现这个吗?

7 个回答

1
from itertools import chain, izip_longest

''.join(chain.from_iterable(izip_longest(s[1::2], s[::2], fillvalue = '')))

如果你有非常大的字符串,或者只是想避免复制,可以使用 islice 来代替普通的切片。

即使字符串的长度是奇数,这种方法也能正常工作,虽然这并不是问题的要求。

2

当然可以!请看下面的内容:

在编程中,有时候我们需要让程序做一些特定的事情,比如在某个条件满足时执行某段代码。这就像给程序设定了一些规则,让它知道什么时候该做什么。

例如,如果你想让程序在用户输入的数字大于10时显示“数字太大了”,你就需要写一个条件判断。这就像是在问:“这个数字是不是大于10?”如果答案是“是”,那么程序就会执行你设定的动作。

这种条件判断在编程中非常常见,它帮助我们控制程序的行为,让程序更加智能和灵活。

希望这个解释能帮助你更好地理解编程中的条件判断!

import re
print re.sub(r'(.)(.)', r'\2\1', "ABCDEF")
5

要添加另一个选项:

>>> s = 'abcdefghijkl'
>>> ''.join([c[1] + c[0] for c in zip(s[::2], s[1::2])])
'badcfehgjilk'

撰写回答