Задать вопрос
@n293
Аналитик

Что значит * перед list?

Есть задачка:
Даны два целых числа A и B (при этом A≤B). Выведите все числа от A до B включительно.

Входные данные:
1
10

Вывод программы:
1 2 3 4 5 6 7 8 9 10

Вот код:
a = int(input())
b = int(input())
print(*list(range(a, b + 1)))


Мне интересно что это за звездочка. С ней выводит как написано в выводе программы, а без нее так:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


Собственно, что за звездочка? Что за магия? Где про это почитать? Гуглы всякие в упор не видят * в поисковом запросе (может там надо воспользоваться операторами для поиска, не суть)
  • Вопрос задан
  • 799 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Это не магия, а преобразование массива в параметры.
def func(a,b,c)
   print(a,b,c)

a=[1,2,3]
func(*a)

Также есть еще одна магия с двумя **.
Действует как именованные параметры для dict.
a=dict(a=1,b=2,c=3)
func(**a)


Немного добавлю.
* - оператор раскрытия списка (list) или типла (tuple) в аргументы функции. Последовательность аргументов должна соответствовать последовательности списка.
** - оператор раскрытия словаря в именованные аргументы функции.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы