Вывести элементы списка чисел через пробел

Помогите разобраться! Нужно вывести элементы списка чисел через пробел, а не через запятую.

a = int(input("Введите первое число: "))
b = int(input("Введите второе число: "))
numbers = []
for number in range(a, b + 1):
    if (a <= b) and (number % 2 == 0):
        numbers.append(number)
print(numbers)

Введите первое число: 1
Введите второе число: 10
[2, 4, 6, 8, 10]

Process finished with exit code 0


Ответы (2 шт):

Автор решения: Andrei Taras

Оказалось проще, чем я думал. Спасибо @CrazyElf

a = int(input("Введите первое число: "))
b = int(input("Введите второе число: "))
numbers = []
for number in range(a, b + 1):
    if (a <= b) and (number % 2 == 0):
        numbers.append(number)
print(*numbers) # нужно было добавить '*' перед 'numbers'
→ Ссылка
Автор решения: Швеев Алексей

В комментариях дали хороший ответ: print(*numbers). Разберём что и как здесь вообще происходит:

Функция print(obj) выводит в консоль содержимое объекта obj. Так как obj содержит в себе не строку функции print приходится преобразовывать его к ней вызывая obj.__str__(). По умолчанию для списков он возвращает его строковое представление в формате [1, 2, 3].

При вызове print(*arr) мы распаковываем массив arr, иными словами:

print(*[1, 2, 3])
# аналогично записи
print(1, 2, 3)

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

# end указывает, чем заканчивается строка, по умолчанию - \n
print(1, 2, 3, sep='; ', end='.\n') # -> 1; 2; 3.
→ Ссылка