string_word="abcd"
data=list(string_word)
replace_index=list({j:i for j,i in enumerate(data) if i=='a' or i=='d'}.keys())
data[replace_index[0]],data[replace_index[1]]=data[replace_index[1]],data[replace_index[0]]
print("".join(data))
x = "abcd"
''.join(['d' if i == 'a' else 'a' if i == 'd' else i for i in x])
'dbca'
没有单子
^{pr2}$
'dbca'
时机
In [1]: x = "abcd"*10000000
In [2]: %timeit ''.join('d' if i == 'a' else 'a' if i == 'd' else i for i in x)
5.78 s ± 152 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In [3]: %timeit ''.join(['d' if i == 'a' else 'a' if i == 'd' else i for i in x])
4.49 s ± 157 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
您可以尝试python替换配方:
输出:
^{pr2}$您可以使用
.translate()
。在https://docs.python.org/3/library/stdtypes.html#str.translate
示例:
可以使用列表理解来切换所需的值
没有单子
^{pr2}$时机
事实证明,列表理解稍微快一点。在
相关问题 更多 >
编程相关推荐