list相关实践练习题

1. 逗号代码

假定有下面这样的列表:

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

编写一个函数,它以一个列表值作为参数,反馈一个字符串。该字符串包含所有表中的元素,元素之间以逗号和空格分隔,并在最后一个元素之前插入and。例如,将前面的spam列表传递给函数,将返回‘apples, bananas, tofu, and cats.’。但你的函数应该能够处理传递给它的任何列表。

版本1

def linkList(spam):
    spam[-1] = 'and ' + spam[-1]
    for i in spam[:-1]:
        print(i, end = ', ')
    print(spam[-1])

spam = ['apples', 'bananas', 'tufu', 'cats']
linkList(spam)

版本2

针对版本1中的linkList(spam)函数,当使用linkList([1, 2, 3, 4])时,显示为:

>>> linkList([1, 2, 3, 4])
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    linkList([1, 2, 3, 4])
  File "D:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\练习\exercise4_10_1.py", line 2, in linkList
    spam[-1] = 'and ' + spam[-1]
TypeError: must be str, not int

说明整型数据无法与字符串相连接,以上函数无法接收列表最后一位为整形数据的列表,故改为版本2,如下:

def linkList(spam):
    spam.insert(len(spam) - 1,'and')
    for i in spam[:-2]:
        print(i, end = ', ')
    print(str(spam[-2]) + ' ' + str(spam[-1]) + '.')

再次键入linkList([1, 2, 3, 4]),得到结果如下:

>>> linkList([1, 2, 3, 4])
1, 2, 3, and 4.




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值