Idiom #360 Create a formatted list
Create the end-user text, s, specifying the contents of list a.
For example,
— 'A', 'A and B', 'A, B, and C'
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)