【发布时间】:2015-08-18 03:21:45
【问题描述】:
例如,有字符串:
abcdefghijklmnopqrstuvwxyz
应该是这样的:
badcfehgjilknmporqtsvuxwzy
我该怎么做呢?
我想到了一些效率不高的东西,比如:
s = str(range(ord('a'), ord('z') + 1))
new_s = ''
for i in xrange(len(s)):
if i != 0 and i % 2 == 0:
new_s += '_' + s[i]
else:
new_s += s[i]
# Now it should result in a string such as 'ab_cd_ef_...wx_yz'
l = new_s.split('_')
for i in xrange(len(l)):
l[i] = l[i][::-1]
result = str(l)
有没有更好的方法?某种更有效或更通用的方法,所以我也可以更轻松地用 3 个字母来处理它?
【问题讨论】:
-
长度会一直均匀吗?
-
@thefourtheye 没有**。顺便说一句,我发布的方式仍然适用于长度不均匀的字符串。
-
如果你想得到 3 个字符,你期望结果是什么?
-
it = iter(s);''.join(next(it, '') + c for c in it )干净简单的IMO。 -
@AshwiniChaudhary 请发布答案,以便我将其标记为最适合未来读者,您的答案是最快的。
标签: python string performance python-2.7