Присоединить список 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 ]
Как я могу объединить все элементы, преобразовывая элементы (индивидуально) в строки, не пропуская их?
Ответы
Ответ 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])