Подтвердить что ты не робот

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

У меня есть список в 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

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

4b9b3361

Ответ 1

print(', '.join(names))

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

Ответ 2

Вот простой.

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

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

Ответ 3

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

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

Ответ 4

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

>>> 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
>>>

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

Ответ 5

Есть два ответа: сначала используется параметр "sep"

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

Другой ниже

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

Ответ 6

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

", ".join(names)

Ответ 7

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

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

Ответ 8

','.join(list) будет работать, только если все элементы в списке являются строками. Если вы хотите преобразовать список чисел в строку через запятую. такие как a = [1, 2, 3, 4] в '1,2,3,4' то вы можете либо

str(a)[1:-1] # '1, 2, 3, 4'

или же

str(a).lstrip('[').rstrip(']') # '1, 2, 3, 4'

хотя это не удалит вложенный список.

Чтобы преобразовать его обратно в список

a = '1,2,3,4'
import ast
ast.literal_eval('['+a+']')
#[1, 2, 3, 4]

Ответ 9

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

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(", ")

Вывод:

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

Ответ 10

l.sort(key= abs, reverse = True)

Списки могут быть отсортированы с помощью метода sort(). И метод сортировки имеет параметр, называемый ключом, который вы можете передать функции. Используя этот параметр, ваш список будет упорядочен не по значениям списка, а по значениям вашей функции в списке.

В вашем случае вы должны использовать функцию abs(), которая будет возвращать абсолютное значение ваших элементов списка. Итак, ваш список >>>l = [1,-5,10,6,3,-4,-9] будет отсортирован, как это было >>>[abs(1),abs(-5),abs(10),abs(6),abs(3),abs(-4),abs(-9)] Что должно быть: >>> [1 ,-4 ,-5 ,6 ,-9 ,10] Чтобы упорядочить от самого большого до самого маленького, используйте также параметр reverse=True.

Ответ 11

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

def listToString(inList):
    outString = ''
    if len(inList)==1:
        outString = outString+str(inList[0])
    if len(inList)>1:
        outString = outString+str(inList[0])
        for items in inList[1:]:
            outString = outString+', '+str(items)
    return outString