2024-06-25 05:22:05 发布
网友
很简单很快的问题。以这个列表为例:
a = ['hello1', 'hello2', 'hello3'] ','.join(a)
我希望在列表的最后一个元素前有“and”而不是逗号。所以我会得到:
hello 1, hello 2 and hello 3
而不是。。。。
hello 1, hello 2, hello 3
有没有办法用.join()来实现这一点?我知道我只需要在列表中输入它作为一个简单的例子,但是我在实际程序中需要的列表来自用户输入。
.join()
你需要在特殊情况下处理小名单:
def my_function(a): if a == []: return "" elif len(a) == 1: return a[0] else: return ', '.join(a[:-1])+' and '+ a[-1]
实际上,您需要分别操作列表的两部分,第一部分包含除最后一个字符串以外的所有内容,而另一部分仅包含最后一个字符串。
def my_func(lst): return ', '.join(lst[:-1])+' and '+lst[-1]
或者使用lambda:
f = lambda x: ', '.join(x[:-1]) + ' and '+x[-1]
或者如果你只想让它运行一次:
result = ', '.join(a[:-1]) + ' and ' + a[-1]
蛇和咖啡有最好的方法。另一种(不太有用的)方法:
>>> a = ['hello1', 'hello2', 'hello3'] >>> ' and '.join((', '.join(a[:-1]), a[-1])) 'hello1, hello2 and hello3'
这里使用两个joins-内部join用逗号连接每个元素,直到最后一个元素的第二个。然后使用外部的join将该字符串连接到最后一个元素(a[-1]),即and。
joins
join
a[-1]
and
你需要在特殊情况下处理小名单:
实际上,您需要分别操作列表的两部分,第一部分包含除最后一个字符串以外的所有内容,而另一部分仅包含最后一个字符串。
或者使用lambda:
或者如果你只想让它运行一次:
蛇和咖啡有最好的方法。另一种(不太有用的)方法:
这里使用两个
joins
-内部join
用逗号连接每个元素,直到最后一个元素的第二个。然后使用外部的join
将该字符串连接到最后一个元素(a[-1]
),即and
。相关问题 更多 >
编程相关推荐