вывод на печать в 1 строку через запятую - PullRequest
0 голосов
/ 26 октября 2011

У меня есть 1 список:

mylist=[John, Stefan, Bjarke, Eric, Weirdo]

Я хочу напечатать все это в одну строку, разделенную запятыми, используя цикл for, например:

for x in mylist:
    print x

Как мне это сделать?

Ответы [ 4 ]

3 голосов
/ 26 октября 2011
print ','.join(mylist)

или если Джон Стефан и т. Д. Еще не являются строками:

print ','.join(str(o) for o in mylist)
1 голос
/ 26 октября 2011

Другие ответы умнее и более «пифоновы».Но если вам действительно нужен цикл:

for item in mylist:
    print item + ',',  # <<<---- here, have a look to the trailing coma!

Но это даст один пробел при следующей печати до печати.Если вы используете sys.stdout, печать начнется сразу после предыдущей печати:

>>> import sys
>>> def t():
...     for i in (1, 4, 2):
...         print i + ',',
...     sys.stdout.write('<>')
...     for i in (3, 5):
...         print i + ',',
>>> t()
1, 4, 2,<> 3, 5,

sys.stdout.write не добавляет пробелы, а '\r заставит печать начать снова с начала строки.Это может быть полезно для обновления отображения в командной строке.

Итак, чтобы ответить на ваш вопрос:

for item in mylist:
    sys.stdout.write(item + ',')

Но эта строка будет заканчиваться комой, что не так с str.join функция.

0 голосов
/ 26 октября 2011

Просто для удовольствия есть способ Perl-esque hax0ring:

print repr(mylist)[1:-1]

;)

0 голосов
/ 26 октября 2011

Попробуйте сделать это:

print ','.join(mylist)

A для цикла не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...