欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python字符串處理實(shí)現(xiàn)單詞反轉(zhuǎn)

 更新時(shí)間:2017年06月14日 09:02:26   作者:qq_21089969  
這篇文章主要為大家詳細(xì)介紹了Python字符串處理實(shí)現(xiàn)單詞反轉(zhuǎn)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Python字符串處理學(xué)習(xí)中,有一道簡單但很經(jīng)典的題目,按照單詞對字符串進(jìn)行反轉(zhuǎn),并對原始空格進(jìn)行保留:
如:‘ I love China! ‘
轉(zhuǎn)化為:‘ China! love I ‘

兩種解決方案:

方案1:從前往后對字符串進(jìn)行遍歷,如果第一個(gè)就是空格,直接跳過,直到第一個(gè)不是空格的字符,如果是單獨(dú)的字母,同樣跳過,否則的話,將該單詞進(jìn)行反轉(zhuǎn),再往后遍歷,最后使用reserve方法,讓整個(gè)字符串從后往前打印。

方案2:直接使用re(正則化)包進(jìn)行反轉(zhuǎn)

代碼如下:

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,如果碰到空格,就調(diào)用反轉(zhuǎn)函數(shù),不考慮單個(gè)字符情況
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))

# 采用正則表達(dá)式操作
str_re = re.split(r'(\s+)',str)

str_re.reverse()
str_re = ''.join(str_re)
print(str_re)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論