在Python中使用.join()

Ace*_*Ace 3 python

非常简单快速的问题.以此列表为例:

a = ['hello1', 'hello2', 'hello3']
','.join(a)
Run Code Online (Sandbox Code Playgroud)

我希望在列表的最后一个元素之前使用'和'而不是逗号.所以我会得到:

你好1,你好2和你好3

代替....

你好1,你好2,你好3

有没有办法完成这个使用.join()?我知道我可以在列表中输入类似这样的简单示例,但我实际程序中需要的列表来自用户输入.

Sna*_*fee 7

本质上,您希望分别操作列表的两个部分,第一部分包括除最后一个字符串之外的所有部分,另一部分仅包含最后一个字符串.

def my_func(lst):
    return ', '.join(lst[:-1])+' and '+lst[-1]
Run Code Online (Sandbox Code Playgroud)

或使用lambda:

f = lambda x: ', '.join(x[:-1]) + ' and '+x[-1]
Run Code Online (Sandbox Code Playgroud)

或者如果你只想运行一次:

result = ', '.join(a[:-1]) + ' and ' + a[-1]
Run Code Online (Sandbox Code Playgroud)