逗號代碼

題目

假定有下面這樣的列表:

spam = ['apples', 'bananas', 'tofu', 'cats']

編寫一個函數,它以一個列表值作為參數,返回一個字符串。該字符串包含所有表項,表項之間以逗號和空格分隔,并在最后一個表項之前插入and。例如,將前面的spam 列表傳遞給函數,將返回'apples, bananas, tofu, and cats'。但你的函數應該能夠處理傳遞給它的任何列表。

組長的建議:因為是列表這章的習題,所以要盡量使用列表的知識去解決問題,這樣才能達到學習的目的。

組長的思路:

1.先將and加入列表

2.在將逗號和空格加入,形成一個字符串

3.使用strip方法和rstrip方法去掉多余的空格和逗號

代碼

list= ['apples', 'bananas', 'tofu', 'cats']

list.insert(len(list)-1,'and')

value=''

for i in list:

? ? ?value=value+i+', '

result=value.strip().rstrip(',')

print(result)

小知識點:strip函數、lstrip函數和rstrip函數

聲明:s為字符串,rm為要刪除的字符序列

s.strip(rm)??????? 刪除s字符串中開頭、結尾處,位于 rm刪除序列的字符

s.lstrip(rm)?????? 刪除s字符串中開頭處,位于 rm刪除序列的字符

s.rstrip(rm)????? 刪除s字符串中結尾處,位于 rm刪除序列的字符

注意:

1. 當rm為空時,默認刪除空白符(包括'\n', '\r',? '\t',? ' ')

?2.這里的rm刪除序列是只要邊(開頭或結尾)上的字符在刪除序列內,就刪除掉,不看順序。



個人思路

通過字符串連接,將列表的表項連接到同一個字符串上。

邏輯

如果列表下標不是最后一個,則格式為列表表項加逗號和空格

否則為and加最后一個表項

程序

def string(list):

? ? ? ? s=''

? ? ? ? for i in range(len(list)):

? ? ? ? ? ? ? ?if i!=len(list)-1:

? ? ? ? ? ? ? ? ? ? ? ? s=s+str(list[i])+', '

? ? ? ? ? ? ? ?else:

? ? ? ? ? ? ? ? ? ? ? ? s=s+'and '+str(list[i])

? ? ? ? ? ? ? ? ? ? ? ? print(s)

def addList(List):

? ? ? ? ? ? ?a = input()

? ? ? ? ? ? ?if a == '0':

? ? ? ? ? ? ? ? ? ? ?print(List)

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? ? ? ? List.append(a)

? ? ? ? ? ? ? ? ? ? ?addList(List)

? ? ? ? ? ? ? ?return List

q=addList([])

string(q)

運行結果


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容