Печать списка без скобок в одной строке
у меня есть список в 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
Примечание: он должен быть в одной строке.
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))
вам нужно перебрать список и использовать
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