用Python交换字符串中每对相邻字符的最简单方法是什么?

2024-09-27 00:11:30 发布

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

我想交换字符串中的每一对字符'2143'变成'1234''badcfe'变成'abcdef'

如何在Python中实现这一点


Tags: 字符串字符abcdefbadcfe
3条回答

在Python中交换两项的常用方法是:

a, b = b, a

所以在我看来,你也会对一个扩展的切片做同样的事情。然而,它有点复杂,因为字符串是不可变的;因此,您必须先转换为列表,然后再转换为字符串。
因此,我将做以下工作:

>>> s = 'badcfe'
>>> t = list(s)
>>> t[::2], t[1::2] = t[1::2], t[::2]
>>> ''.join(t)
'abcdef'

这里有一个方法

>>> s = '2134'
>>> def swap(c, i, j):
...  c = list(c)
...  c[i], c[j] = c[j], c[i]
...  return ''.join(c)
...
>>> swap(s, 0, 1)
'1234'
>>>

oneliner:

>>> s = 'badcfe'
>>> ''.join([ s[x:x+2][::-1] for x in range(0, len(s), 2) ])
'abcdef'
  • s[x:x+2]返回从x到x+2的字符串切片;对于奇数透镜是安全的
  • [::-1]反转Python中的字符串
  • 范围(0,len(s),2)返回0,2,4,6。。。而x<;莱恩(s)

相关问题 更多 >

    热门问题