我想在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)
``
可以通过以下程序实现:
#!/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']
尝试使用:
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'))