Подтвердить что ты не робот

Присоединить список float к разделительной строке в Python

У меня есть список поплавков в python:

a = [1.2, 2.9, 7.4]

Я хочу присоединиться к ним для создания строки, разделенной пробелом, то есть.:

1.2 2.9 7.4

Однако, когда я пытаюсь:

print " ".join(a)

Я получаю сообщение об ошибке, потому что это float, и когда я пытаюсь:

print " ".join(str(a))

Я получаю

[ 1 . 2 ,   1 . 8 ,   5 . 2 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 ]

Как я могу объединить все элементы, преобразовывая элементы (индивидуально) в строки, не пропуская их?

4b9b3361

Ответ 1

Вам нужно преобразовать каждую запись списка в строку, а не весь список сразу:

print " ".join(map(str, a))

Если вы хотите больше контролировать преобразование в строку (например, управлять количеством цифр для печати), вы можете использовать

print "".join(format(x, "10.3f") for x in a)

Смотрите документацию синтаксиса спецификаторов формата.

Ответ 2

На самом деле вам нужно пройти через них. С генератором или пониманием списка, которое выглядит довольно чисто:

print " ".join(str(i) for i in a)

(карта проходит через них, как и код формата)

Генератор имеет преимущество перед пониманием списка, не генерируя второй промежуточный список, тем самым сохраняя память. Понимание списка будет:

print " ".join([str(i) for i in a])