Конкатенация чисел с плавающей запятой в строку с фиксированной длиной после запятой
Есть список чисел с плавающей запятой, как соединить их в строку по пробелам, но с фиксированной длиной после запятой?
Пробую так:
x = (1.42, 1.5, 241.2, 52.2, 15.1, 52.1)
print(' '.join(map(str, x)))
Но здесь длина не фиксирована. Как её зафиксировать?
Например, для длины 3 хочу получить строку:
1.420 1.500 241.200 52.200 15.100 52.100
Ответы (2 шт):
Автор решения: entithat
→ Ссылка
x = (1.422, 1.5, 241.2, 52.2, 15.1, 52.1)
print(' '.join(map(lambda x: format(x, '.3f'), x))) # 1.422 1.500 и тд
Либо так, чтобы не указывать вручную:
prec = 4 # кол-во цифр после запятой
print(' '.join(map(lambda x: format(x, f'.{prec}f'), x)))
Автор решения: Zhihar
→ Ссылка
пара способов, хотя по сути одно и тоже,
тут уж что визуально привлекательнее
x = (1.42, 1.5, 241.2, 52.2, 15.1, 52.1)
res1 = ' '.join(format(i, ".3f") for i in x)
res2 = ' '.join(map(lambda i: format(i, ".3f"), x))
print(res1)
print(res2)
из нового стиля:
res3 = ' '.join("{:.3f}".format(i) for i in x)
res4 = ' '.join(map("{:.3f}".format, x))
тут уже map более красиво выглядит
и еще чуть-чуть:
res5 = ' '.join(f"{i:.3f}" for i in x)
res6 = ' '.join(map(lambda i: f"{i:.3f}", x))