《python编程快速上手——让繁琐工作自动化》实践项目——逗号代码

题目:
假定有下面这样的列表:

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

编写一个函数,它以一个列表值作为参数,返回一个字符串。该字符串包含所有表项,表项之间以逗号和空格分隔,并在最后一个表项之前插入 and。例如,将前面的 spam 列表传递给函数,将返回

'apples, bananas, tofu, and cats'

但你的函数应该能够处理传递给它的任何列表。

个人思路:使用insert方法插入’and’,将最后两个元素与其它元素分开处理。

def solution(l):
	s = ''
	l.insert(-1, 'and')
	for i in range(len(l)-2):
		l[i] = l[i] + ', '
		s = s + l[i]
	l[-2] = l[-2] + ' '
	s = s + l[-2] + l[-1]
	return s	 

这里最容易出错的就是insert(位置,内容),这里我们是想在’cats’元素之前添加元素’and’,可能会出现

l.insert(-2, 'and')

这样是错误,你可以理解为insert方法占着某个元素之前的位置,在该位置之后的元素会往后移动一个序列。大家可以试一试。

完整代码:

def solution(l):
	s = ''
	l.insert(-1, 'and')
	for i in range(len(l)-2):
		l[i] = l[i] + ', '
		s = s + l[i]
	l[-2] = l[-2] + ' '
	s = s + l[-2] + l[-1]
	return s


spam = ['apples', 'banans', 'tofu', 'cats']
result = solution(spam)
print(result)

如果有错误,欢迎指出。若有疑问,我会在评论区回答。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值