Вопрос Помогите! снова питон! снова непонятный код

Регистрация
9 Сен 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
На вход подается строка, содержащая целые числа, записанные через пробел. Требуется превратить строку в список и преобразовать его, вставив число ноль после всех элементов, кратных своему индексу. Необходимо вывести элементы преобразованного списка через пробел. Пример Ввод:1 2 3 3 1 5 1 7 Вывод: [1, 2, 0, 3, 3, 0, 1, 5, 0, 1, 7, 0]
 
a = list(map(int, input().split()))
print(
[y for x in [(x,0) if i and x%i == 0
else (x,) for i,x in enumerate(a)]
for y in x]
)
 
Задача абсурдна уже потому, что индекс начального элемента - 0, получаем деление на 0. Но если не обращать внимания на клинический идиотизм автора задачи, то: t = list(map(int, input().split()))
t = t[0:1] + sum([[t] + [0] * (not t % i) for i in range(1, len(t))], [])
print(*t)
 
У первого элемента индекс 0, а на ноль делить нельзя. Как авторы задачи видят проблему получения кратности с учетом такой вот штуки?
 
x = input().split(" ")
xx = list()
for y in range(0,len(x)):
xx.append(x[y])
if(y != 0):
if(int(x[y])%y==0):
xx.append(0)

print(xx)
 
всё решается одной строчкой, довольно легко. удачи пока
 
Назад
Сверху