用Python交换字符串中的char最简单的方法是什么?

2024-09-26 17:36:01 发布

您现在位置: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 = 'badcfe'
>>> ''.join([ s[x:x+2][::-1] for x in range(0, len(s), 2) ])
'abcdef'
  • s[x:x+2]返回从x到x+2的字符串片段;对于奇数len(s)是安全的。
  • [::-1]反转Python中的字符串
  • 范围(0,len(s),2)返回0,2,4,6。。。当x<;len(s)时

有一种方法。。。

>>> 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'
>>>

相关问题 更多 >

    热门问题