我想在python中交换字符串

问题描述 投票:0回答:2

我想在python中交换一个类似的字符串“大脑”一词,我们交换b和r:rbain。接下来,我们交换r和a:barin。接下来,我们交换a和i:brian。最后,我们交换i和n:brani我有一些代码,但这是不正确的




def swap(string):
        temp = string
        swap = []
        for i in range(len(temp)-1):
            temp = string0
            tail = temp[i]
            temp[i] = temp[i+1]
            temp[i+1] = tail
            swap.append(temp)
        print(swap)

``
python string swap
2个回答
0
投票

可以通过以下程序实现:

#!/usr/bin/env python3

def swap(string):
    return ['{}{}{}{}'.format(
        string[:i],
        string[i + 1],
        string[i],
        string[i + 2:]
    ) for i in range(len(string) - 1)]

print(swap('brain'))

它输出:

['rbain', 'barin', 'brian', 'brani']

0
投票

尝试使用:

def swap(string):
    s = list(string)
    for i, (x, y) in enumerate(zip(string, string[1:])):
        s[i], s[i+1] = y, x
        print(''.join(s))
        s = list(string)
swap('brain')

或使用简短版本:

def swap(string):
    return '\n'.join([string.replace(y,x).replace(x, y, 1) for x,y in zip(string, string[1:])])
print(swap('brain'))
© www.soinside.com 2019 - 2024. All rights reserved.