我是python的新手。该程序将任何列表传递到一个函数中,并打印一个字符串,其中单词用“,”分隔,最后一个单词用“,”和“,”分隔。但是If语句没有分支到最后一个单词。我不知道把它放进for循环是不是破坏了它
spam = ['apples', 'oranges', 'pears', 'strawberries', 'watermelon']
def comma(x):
newSpam = x[0]
del x[0]
for i in range(len(x)):
print(type(len(x)))
if i == (len(x)):
newSpam = newSpam + ', and ' + [x(i)]
else:
newSpam = newSpam + ', '+ x[i]
print(newSpam)
comma(spam)
我得到的结果是:
apples, oranges, pears, strawberries, watermelon
将
if i == (len(x)):
替换为长度不表示列表的最后一项。您需要使用长度-1表示最后一项
正如您在
newSpam = x[0]
行中所演示的,Python是零索引的,这意味着列表的第一项是索引0,而列表的最后一项比列表的长度小一个。因此,要检查是否在最后一项,需要检查if i == (len(x) - 1)
而不是if i == len(x)
相关问题 更多 >
编程相关推荐