【发布时间】:2017-01-21 23:24:50
【问题描述】:
假设我的字符串是:
x = 'abcdefghi'
我想在 3 的子集中反转它,所以我的输出是:
x = 'cbafedihg'
即第 0 个索引与第 2 个索引交换,第 3 个索引与第 5 个交换,依此类推。
下面是我基于将string 转换为list 并交换列表中的元素的代码:
string_list = list(x)
for i in range(len(string_list)/3):
string_list[i*3], string_list[i*3+2] = string_list[i*3+2], string_list[i*3]
''.join(string_list)
# Output: 'cbafedihg'
我想知道实现它的最有效和最 Pythonic 的方法是什么。
注意:len(x)%3 将始终为 0。
【问题讨论】:
-
添加了我认为可以作为答案的替代方法。我仍然很想知道是否有更有效的方法来实现它。
标签: python string python-2.7 python-3.x slice