#python #list #for-loop
#python #Список #for-цикл
Вопрос:
У меня есть 1 список:
mylist=[John, Stefan, Bjarke, Eric, Weirdo]
Я хочу напечатать все это в одной строке, разделенной запятыми, используя цикл for, например:
for x in mylist:
print x
Как мне это сделать?
Ответ №1:
print ','.join(mylist)
или, если John Stefan и т. Д. Еще Не являются строками:
print ','.join(str(o) for o in mylist)
Комментарии:
1. Еще лучше использовать генератор во втором примере вместо списка, просто опустив квадратные скобки.
2. Извините, я недостаточно хорошо знаком со stackoverflow, он не отображает мои комментарии к редактированию. Улучшено в соответствии с предложением Майкла
Ответ №2:
Другие ответы более умные и более «питонические». Но если вам действительно нужен цикл:
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
функции.
Комментарии:
1. Да, это хороший вариант для быстрого отображения. И поскольку он автоматически добавляет пространство, он обеспечивает читаемый вывод с помощью очень простого кода.
Ответ №3:
Попробуйте сделать это:
print ','.join(mylist)
Цикл for не нужен.
Ответ №4:
Просто для развлечения, есть способ hax0ring в стиле Perl:
print repr(mylist)[1:-1]
😉