2017-04-24 124 views
0

我很难找出如何在python字符串中颠倒几个字。颠倒python字符串中的字符

例如:

aString = "This is my string." 

我知道如何扭转整个字符串,但我无法弄清楚如何扭转只有几句话,如:我需要扭转的每一个字

偶数索引,2,4,6,8,10,12

aString = "This si my gnirts" 

回答

4

可以使用enumerate以产生沿着分割后的项目索引与str.split和扭转这些在奇数(甚至从零开始计数)指数。使用str.join重建字符串:

>>> s = "This is my string" 
>>> ' '.join(x if i%2==0 else x[::-1] for i, x in enumerate(s.split())) 
'This si my gnirts' 
+0

这工作完美,非常感谢你! –

+0

@ZackWalton如果有帮助,你可以接受 –

1

你可以这样做:

newString = [] 
for index, i in enumerate(aString.split()): 
    if i % 2 == 0: 
     newString.append(i[::-1]) 
    else: 
     newString.append(i) 
newString = ''.join(newString) 
0

如果你想这样做在同一行...

out = ' '.join([x[::-1] if input.index(x)%2 == 1 else x for x in input.split(' ')]) 

例:

>>> input = 'here is an example test string' 
>>> out = ' '.join([x[::-1] if input.index(x)%2 == 1 else x for x in input.split(' ')]) 
>>> out 
'here si an elpmaxe tset string' 

注:我知道你说过你希望在你的原始问题中反转甚至是索引,但是看起来你实际上是在根据你的例子寻找奇怪的索引。只要将模式切换到%2 == 0,如果我错了。