Be concise.
Be useful.
All contributions dictatorially edited by webmasters to match personal tastes.
Please do not paste any copyright violating material.
Please try to avoid dependencies to third-party libraries and frameworks.
def f(a, sep=', ', con=' and '):
*x, s = map(str, a)
return sep.join(x) + con + s if x else s
class List:
def __init__(self, /, sep=', '):
self.d, self.c = sep, dict()
def apply(self, /, *x, prefix='', suffix=''):
self.c[*x] = prefix, suffix
def parse(self, a):
a = [*map(str, a)]
for k, (p, s) in self.c.items():
for i in k: a[i] = p + a[i] + s
return self.d.join(a)
x = List()
x.apply(-1, prefix='and ')
s = x.parse(a)