我刚开始学习Python,在一章的最后我要做一个练习。到目前为止,我在这本书中所学到的都是非常基础的,流控制,函数和列表。在
练习是:
逗号代码
假设您有这样一个列表值:
spam=[“苹果”,“香蕉”,“豆腐”,“猫”]
编写一个以列表值为参数并返回
一个字符串,其中所有项用逗号和空格隔开,并带有“and”
在最后一项之前插入。例如,将以前的垃圾邮件列表传递给
函数将返回“苹果、香蕉、豆腐和猫”。但是你的功能
应该能够处理传递给它的任何列表值。在
为了解决这个问题,我使用以下代码(python3.x.x)。我想知道有没有更好的办法。这是一个小的尝试和错误,但我摸索着通过它,直到我得到这个:
myList = ['apples', 'bananas', 'tofu', 'cats']
myList2 = ['apples', 'bananas', 'tofu', 'cats', 'added1', 'added2']
def listFunc(List):
x = 0
for i in List:
x += 1
if x < len(List):
print(i, end=' ')
elif x == len(List):
print('and ' + i)
listFunc(myList2)
让我们来享受一下Python 3的乐趣,并保持它的简单性:
另一种方法是使用切片和连接:
下面是使用相同核心概念的更具可读性的上述函数版本。在
^{pr2}$我认为这里唯一可能混淆的部分是片语法、负索引和
string.join
代码
lst[:-1]
表示get everything in lst excepting the last element
这是一个列表片段代码
lst[-1]
表示get the last element in lst
,这是负索引最后,代码
", ".join(firstPart)
表示get a string containing each element in firstPart separated by a comma and a space
这里是一个简单的函数版本,它没有使用任何非常“花哨”的东西,初学者应该可以理解它。切片可能是这里最先进的东西,但如果你浏览一下列表,应该没问题。它还处理空列表和一项列表的两种特殊情况。在
这不是通常在Python中使用的方法,但是对于学习来说应该是很好的。在
相关问题 更多 >
编程相关推荐