1. 程式人生 > >python(一)單詞反轉,保留所有的空格

python(一)單詞反轉,保留所有的空格

題:單詞反轉,保留所有的空格,例如:’ hello how are you? Fine. ’ 反轉後:‘ F i n e . y o u ? a r e h o w h e l l o ’

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

setence=' hello  how are you?   Fine.   '
str_list = list(setence) i = 0 while i < len(str_list): if str_list[i]!=' ': #如果碰到的不是空格,也就是碰到了一個單詞的開始 start = i #start的初始位置 print('start: ',start) end = start + 1 #end至少是從start後面一個單元開始 while(end < len(str_list)) and str_list[end]!=' ': #長度小於字串長度
print('end: ',end) end += 1 #繼續往後走,直到第一個單詞最後一個字母如:hello的‘o' reverse(str_list, start, end-1) #通過呼叫reverse函式實現 #第一個和倒數第一個 #第二個和倒數第二個對單詞做反轉 #如:'h'和'o'對調
print(str_list) i=end #再從end開始走,處理第二個單詞how else: i+=1 #然後來對調第一個和倒數第二個字母 print(str_list) #這裡看一下未反轉的情況 str_list.reverse() #這裡將首個單詞和末單詞反轉,第二個和倒數第二個單詞反轉 #空格不動 print(str_list) print(' '.join(str_list))

可以從執行結果看出先對單詞內部反轉,最後把各個單詞反轉。 #插入知識點:python快速反轉:a,b=b,a,講啊a,b對調 #思考部分:split()函式,

2.split()函式

Python split() 通過指定分隔符對字串進行切片,如果引數 num 有指定值,則僅分隔 num 個子字串

split() 方法語法:

str.split(str=”“, num=string.count(str))

引數
str – 分隔符,預設為所有的空字元,包括空格、換行(\n)、製表符(\t)等。
num – 分割次數。

返回值
返回分割後的字串列表。

例項

str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print (str.split( ))
print (str.split(' ', 1 ))
======== RESTART: C:\Users\xiaohengpeng\Desktop\pythontest\py_test.py ========
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', '\nLine2-abc \nLine4-abcd']
>>> 

這裡不用split()函式是因為有些空格不會被保留。