2017-04-24 15 views
0

Python文字列の中のいくつかの単語を逆にする方法を理解するのに問題があります。Python文字列の文字を反転する

例:私がすべての単語を逆にする必要がある

:私は、文字列全体を逆にするが、私のような唯一のいくつかの単語を逆にする方法を見つけ出すことはできません方法を知っている

aString = "This is my string." 

偶数インデックス、2、4、6、8、10、12

答えて

4
aString = "This si my gnirts" 

あなたがstr.splitと分割後の商品と一緒にインデックスを生成するenumerateを使用し、それらを逆にすることができで奇数(ゼロからのカウントが開始されているにもかかわらず)インデックス。

>>> 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

あなたがこれを行うことができます:文字列を再構築するstr.joinを使用し

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

あなたは1行でそれをしたい場合は...

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' 

注:私はあなたがあなたは元の質問のインデックスさえも逆にすることを目指していましたが、実際にあなたの例に基づいて奇妙なものを探していたように見えました。私がそれについて間違っている場合は、modを%2 == 0に切り替えてください。

関連する問題