python(一)單詞反轉,保留所有的空格
阿新 • • 發佈:2018-12-26
題:單詞反轉,保留所有的空格,例如:’ 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()函式是因為有些空格不會被保留。