python - 在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)
解决方案
您可以使用元组列表来表示索引交换,但您必须注意这些交换操作的顺序:
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'
推荐阅读
- c# - 任务 oncomplete 没有继续
- html - 围绕中心导航品牌定位导航链接 - BOOTSTRAP
- php - 如何在使用 woocommerce_available_variation 挂钩时拥有更多选项
- symfony - 在nginx中配置两个子域
- c# - 部署时的 ASP .NET Core 3 MVC 连接字符串问题
- android - 为成熟的移动应用程序测试环境设置的输入
- python - 远程服务器上的工件存储和 MLFLOW
- r - 如何将pickerInput中的选项对齐到中心?
- javascript - 如何使用扩展运算符更改对象的嵌套属性?
- git - Git 等效于 Mercurial 提示标记