首页 > 解决方案 > 在python中将第n个元素移动到字符串中的特定第n个元素?

问题描述

好的,所以我是 Python 的新手,试图远离 Java。

基本上我想将字符串的索引从 0 切换到 1,现在切换到 1 到 4,旧的第 4 到第 5 等等。

举个例子

string_msg = ['HBTUET'] 需要打印出来['BUTTHE']

我该怎么做呢?

到目前为止我尝试过的

string_msg = 'HBTUET'
lst = list(string_msg)
lst[::2], lst[1::2] = lst[1::2], lst[::2]
''.join(lst)
print(lst)

标签: pythonstringfor-loop

解决方案


您可以使用元组列表来表示索引交换,但您必须注意这些交换操作的顺序:

def strSwap(msg,swaps):
    chars = list(msg)
    for i,j in swaps: chars[i],chars[j] = chars[j],chars[i]
    return "".join(chars)

输出:

msg   = 'HBTUET'
swaps = [(0,1),(1,3),(3,5),(4,5)]    

strSwap(msg,swaps) # 'BUTTHE'


msg   = 'WRFLVEOO'
swaps = [(0,7),(1,2),(1,4),(2,3),(2,5)]

strSwap(msg,swaps) # 'OVERFLOW'


msg   = 'ESLHTYGOHOE'
swaps = [(0, 1), (0, 8), (2, 5), (4, 7), (6, 9), (6, 10)]

print(strSwap(msg,swaps)) # 'HEYHOLETSGO'

推荐阅读