题目
假定有下面这样的列表:
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)
运行结果
网友评论