Facundo, I think this is the beginning of a great feature. And it fills a hole in the current string formatting. Specifically, we can carefully control the formatting of the base data types, but not collections. I would like to see you flesh out the idea. In particular, I'd like to see you address cases where: 1. The underlying members in the collection are not strings. Besides the basic types such as numbers, it would also be nice to be able to apply formats recursively so that one can construct a string using the attributes of members that are objects or items or other collections. 2. The ability to handle collections other than simple lists or iterables, such as dictionaries. -Ken On Wed, May 09, 2018 at 09:39:08AM -0300, Facundo Batista wrote:
This way, I could do:
authors = ["John", "Mary", "Estela"] "Authors: {:, j}".format(authors) 'Authors: John, Mary, Estela'
In this case the join can be made in the format yes, but this proposal would be very useful when the info to format comes inside a structure together with other stuff, like...
info = { ... 'title': "A book", ... 'price': Decimal("2.34"), ... 'authors: ["John", "Mary", "Estela"], ... } ... print("{title!r} (${price}) by {authors:, j}".format(**info)) "A book" ($2.34) by John, Mary, Estela
What do you think?
-- . Facundo