2010-07-14 3 views
3

У меня есть что-то вроде: print "\n","|",id,"|",var1,"|",var2,"|",var3,"|",var4,"|"Как напечатать строку переменных без пробелов в Python

Он печатает с пробелами для каждой переменной.

| 1 | john | h | johnny | mba | 

Я хочу что-то вроде этого:

|1|john|h|johnny|mba| 

У меня есть 20 переменных, которые я должен напечатать, и я ненавижу использовать sys.stdout.write (VAR) для каждого из них. Спасибо Pythonistas!

ответ

6

Попробуйте использовать join:

print "\n"+'|'.join([id,var1,var2,var3,var4]) 

или, если переменные не являются уже строки:

print "\n"+'|'.join(map(str,[id,var1,var2,var3,var4])) 

Преимущество этого подхода заключается в том, что вы не должны построить длинную строку формата и он в основном работает без изменений для произвольного числа переменных.

5
print "\n|%s|%s|%s|%s" % (id,var1,var2,var3,var4) 

Посмотрите на String Formatting.

Редактировать: Другие ответы с присоединением лучше. Присоединиться ожидает строки.

+1

'% s' работает с любым объектом, а не только с строками -' '% s +% s"% (1, 2) == "1 + 2" '. Вам не нужно использовать '% d', если вы не хотите, чтобы код выдавал исключение для нечислового ввода. –

+0

Исправлено. Спасибо. – user389875

+0

Конечно,% s не дает ужасно полезного результата, если не реализованы '__str__' или' __repr__' –

7

Для переменного числа значений:

print '|%s|' % '|'.join(str(x) for x in [id, var1, var2, var3, var4]) 
+0

print '|% s |' % '|' .join (map (str, [id, var1, var2, var3, var4])) выглядит лучше (если у вас действительно большой массив, вы можете использовать imap вместо). –

+0

@ Томасз: Вы так думаете? Я думал, что Pythonistas обычно считают генератор более четким ... –

+0

Возможно, вы правы. Но в этом приближении карты швов бесполезны. –

2

Если вы используете Python 2.6 или новее, использовать новый стандарт для форматирования строки, метод str.format:

print "\n{0}|{1}|{2}|".format(id,var1,var2) 

link text

+1

И если у вас есть Python 2.7 или новее, вы можете даже отбросить числа: '" \ n {} | {} | {} | ".format (id, var1, var2)' –

Смежные вопросы