Python 문자열 처리 단어 반전 실현

1549 단어 Python단어 반전
Python 문자열 처리 학습 중 간단 하지만 전형 적 인 문제 가 있 습 니 다.단어 에 따라 문자열 을 반전 시 키 고 원본 빈 칸 을 유지 합 니 다.
'I love China!'
'China!love I ‘
두 가지 해결 방안:
프로젝트 1:이동 한 후에 문자열 을 옮 겨 다 닙 니 다.첫 번 째 가 빈 칸 이 라면 바로 넘 어 갑 니 다.첫 번 째 가 빈 칸 이 아 닌 문자 가 될 때 까지 단독 알파벳 이 라면 똑 같이 넘 어 갑 니 다.그렇지 않 으 면 이 단 어 를 반전 시 키 고 뒤로 옮 겨 다 닙 니 다.마지막 으로 reserve 방법 을 사용 하여 전체 문자열 을 뒤에서 앞으로 인쇄 합 니 다.
방안 2:re(정규 화)패 키 지 를 직접 사용 하여 반전
코드 는 다음 과 같 습 니 다:

import re

def reserve(str_list, start, end):
  while start <= end:
    str_list[start], str_list[end] = str_list[end], str_list[start]
    end -= 1
    start += 1

str = ' I love china!  '
str_list = list(str)
print(str_list)
i = 0
print(len(str_list))

#       list,      ,       ,         
while i < len(str_list):
  if str_list[i] != ' ':
    start = i
    end = start + 1
    print(end)
    while (end < len(str_list)) and (str_list[end]!=' '):
      end += 1
    if end - start > 1:
      reserve(str_list, start, end-1)
      i = end
    else:
      i = end
  else:
    i += 1

print(str_list)
str_list.reverse()
print(''.join(str_list))

#          
str_re = re.split(r'(\s+)',str)

str_re.reverse()
str_re = ''.join(str_re)
print(str_re)
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기