perhaps, given the dynamic typing, it will be problematic to apply the format for each, so for now I suggest only concatenating them together.
But something like this, of course, is not ideal, but it will work.
class Iterable:
def __format__(self, fmt):
concat, *fmts = fmt.split('|')
def _format(el) -> str:
for opt in fmts:
try: return format(el, opt)
except TypeError: pass
return str(el)
return concat.join(map(_format, self))
print(f'{some_iter:, |0.f|d}')