Печать списка без скобок в одной строке



у меня есть список в Python
например,



names = ["Sam", "Peter", "James", "Julian", "Ann"]


Я хочу напечатать массив в одной строке без нормального " []



names = ["Sam", "Peter", "James", "Julian", "Ann"]
print (names)


выдаст результат как;



["Sam", "Peter", "James", "Julian", "Ann"]


это не тот формат, который я хочу, а я хочу, чтобы это было так;



Sam, Peter, James, Julian, Ann


Примечание: он должен быть в одной строке.

647   8  

8 ответов:

print(', '.join(names))

Это, как это звучит, просто берет все элементы списка и соединяет их с ', '.

вот один простой.

names = ["Sam", "Peter", "James", "Julian", "Ann"]
print(*names, sep=", ")

звезда распаковывает список и возвращает каждый элемент в списке.

общее решение, работает на массивах без строк:

>>> print str(names)[1:-1]
'Sam', 'Peter', 'James', 'Julian', 'Ann'

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

>>> arr = [1, 2, 4, 3]
>>> print(", " . join(arr))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, int found
>>> sarr = [str(a) for a in arr]
>>> print(", " . join(sarr))
1, 2, 4, 3
>>>

прямое использование соединения, которое соединит целое число и строку, вызовет ошибку, как показано выше.

есть два ответа, Во-первых, использовать " sep " настройки

>>> print(*names, sep = ', ')

другое ниже

>>> print(', '.join(names))

Это то, что вам нужно

", ".join(names)

вам нужно перебрать список и использовать end=" "чтобы держать его в одной строке

names = ["Sam", "Peter", "James", "Julian", "Ann"]
    index=0
    for name in names:
        print(names[index], end=", ")
        index += 1

Я не знаю, если это эффективно, как другие, но простая логика всегда работает:

import sys
name = ["Sam", "Peter", "James", "Julian", "Ann"]
for i in range(0, len(names)):
    sys.stdout.write(names[i])
    if i != len(names)-1:
        sys.stdout.write(", ")

выход:

Сэм, Питер, Джеймс, Джулиан, Энн

Comments

    Ничего не найдено.