python - 交换字母位置
问题描述
我正在尝试交换位置值。
a
应该被分配,e
反之亦然
b
应该被分配,g
反之亦然
有什么简单的方法吗?
我的代码:
str1="abcdefg"
clst=list(str1)
index_lst1=[]
index_lst2=[]
final_lst=[]
for i in range (len(clst)):
if clst[i] == 'a' or clst[i] == 'b':
index_lst1.append(i)
elif clst[i] == 'e' or clst[i] == 'g':
index_lst2.append(i)
else:
pass
final_lst.extend(index_lst1)
final_lst.extend(index_lst2)
for i in range(len(clst)):
x=clst[0]
y=clst[1]
if i == 0:
b=clst[4]
clst[0]=b
clst[4]=x
elif i == 1 :
c=clst[6]
clst[1]=c
clst[6]=y
print(clst)
预期输出:
egcdafb
解决方案
你可以这样做:
str1.translate(str.maketrans("abeg", "egab"))
这将翻译所有 a <-> e 和所有 b <-> g。
例子:
>>> "abcdefg".translate(str.maketrans("abeg", "egab"))
'egcdafb'
请注意,这是该类maketrans
的静态方法str
,这就是为什么它通常被称为 as 的原因str.maketrans()
,尽管它也可以从您的str1
字符串中调用str1.maketrans()
。它通常以第一种方式完成。
推荐阅读
- square - 如何从 Square API 获取最近的销售额?
- mxgraph - mxGraph:当我删除所有单元格时,布局管理器停止工作
- java - 将 AsyncTask 重置为多次执行
- angular - 为什么订阅函数中的代码会执行多次
- html - 当 flex-direction 设置为 column 时,如何使用 flexbox 将元素与 div 的底部对齐
- angular - ngx-translate 刷新页面后切换到默认语言
- django - 为 django 建模 ER 图
- c# - 区域顶点在 Eyeshot 上略有不同
- c# - 是否建议在 Windows 服务中运行 Visual Studio Tools for Office?
- mule - 如何解决 Anypoint studion 7 错误?