2017-04-24 2 views
0

파이썬 문자열에서 몇 단어를 뒤집는 방법을 알아내는 방법에 문제가 있습니다.파이썬 문자열의 문자 반전

예 : 나는 매일 단어를 반전 할 필요가

: 나는 전체 문자열을 반대로하지만 같은 단지 몇 단어를 반전하는 방법을 알아낼 수있는 방법을 알고

aString = "This is my string." 

짝수 인덱스, 2, 4, 6, 8, 10, 12

aString = "This si my gnirts" 

답변

4

str.split로 분할 후의 상품과 함께 지표를 생성 enumerate를 사용하여 그 반대로 할 홀수 (계수가 0부터 시작하기 때문에) 인덱스.

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

한 줄에 그것을하려면 ...

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으로 바꿔라.