如何在列表中的最后一个单词之前添加单词?

时间:2017-12-20 15:03:22

标签: python

你好,我是这种编程语言的新手

我想在列表中的最后一项之前添加单词'and'

例如:

myList = [1,2,3,4]

如果我打印它,输出必须如下:

1,2,3 and 4

5 个答案:

答案 0 :(得分:6)

这是一种方法,但我必须将int转换为字符串才能使用join

myList = [1,2,3,4]
smyList = [str(n) for n in myList[:-1]]   
print(",".join(smyList), 'and', myList[-1])

给出:

1,2,3 and 4

列表的-1索引给出了最后一个(最右边)元素。

答案 1 :(得分:2)

这可能不是最优雅的解决方案,但这就是我要解决的问题。

定义格式化程序函数,如下所示:

def format_list(mylist)
    str = ''
    for i in range(len(mylist)-1):
        str.append(str(mylist[i-1]) + ', ')

    str.append('and ' + str(mylist[-1]))

    return str

然后像这样称呼它

>>> x = [1,2,3,4]
>>> format_list(x)
1, 2, 3, and 4

答案 2 :(得分:1)

您还可以使用字符串格式化:

l = [1,2,3,4]
print("{} and {}".format(",".join(str(i) for i in l[:-1]), l[-1]))
#'1,2,3 and 4'

答案 3 :(得分:1)

使用join(加入列表元素)和map(str,myList)将列表中的所有整数转换为字符串

','.join(map(str,myList[:-1])) + ' and ' + str(myList[-1])
#'1,2,3 and 4'

答案 4 :(得分:0)

如果您说“如何在列表中的最后一个单词之前添加单词?”,那么您的问题会产生误导。这意味着你想在列表中的最后一项之前添加'和'字符串,而许多人使用.format()方法给出答案,你应该指定你想要'和'用于打印或在列表中进一步使用该结果:

根据您的问题,这是列表方法:

myList = [1,2,3,4]
print(list((lambda x,y:(x+['and']+y))(myList[:-1],myList[-1:])))

输出:

[1, 2, 3, 'and', 4]