Python字串處理:按單詞反轉__Python

來源:互聯網
上載者:User

python字串處理學習中,有一道簡單但很經典的題目,按照單詞對字串進行反轉,並對原始空格進行保留:
如:‘ I love China! ‘
轉化為:‘ China! love I ‘
兩種解決方案:
方案1:從前往後對字串進行遍曆,如果第一個就是空格,直接跳過,直到第一個不是空格的字元,如果是單獨的字母,同樣跳過,否則的話,將該單詞進行反轉,再往後遍曆,最後使用reserve方法,讓整個字串從後往前列印。
方案2:直接使用re(正則化)包進行反轉
代碼如下:

import redef reserve(str_list, start, end):    while start <= end:        str_list[start], str_list[end] = str_list[end], str_list[start]        end -= 1        start += 1str = ' I love china!   'str_list = list(str)print(str_list)i = 0print(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 += 1print(str_list)str_list.reverse()print(''.join(str_list))# 採用Regex操作str_re = re.split(r'(\s+)',str)str_re.reverse()str_re = ''.join(str_re)print(str_re)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.