import typing
from itertools import zip_longest
def checkers(iterable1: typing.Iterable, iterable2: typing.Iterable) -> list:
return [item1 if i % 2 == 0 else item2
for i, (item1, item2) in enumerate(zip_longest(iterable1, iterable2, fillvalue=0))]
def process_input() -> list:
return [int(x) for x in input().split()]
if __name__ == "__main__":
b = process_input()
c = process_input()
result = checkers(b, c)
print(*result)
и на моем python, который установлен в моей OS этот код нормально все работает #!/usr/bin/python
import typing
a = input()
a = [int(i) for i in str(a)]
b = input()
b = [int(i) for i in str(b)]
len_diff = len(a)-len(b)
if len_diff > 0:
for i in range(len_diff):
b.append(0)
elif len_diff < 0:
for i in range(abs(len_diff)):
a.append(0)
def checkers(iterable1: typing.Iterable, iterable2: typing.Iterable):
result = []
for i in range(int(len(iterable1)/2)):
result.append(iterable1.pop(0))
iterable1.pop(0)
iterable2.pop(0)
result.append(iterable2.pop(0))
return result
result = checkers(a, b)
print(''.join([str(c) for c in result]))
от себя небольшой коммент: def checkers(a,b):
res=[]
for i in range(max(len(a),len(b))):
try:
res.append(a[i])
except:
res.append(0)
try:
res.append(b[i])
except:
res.append(0)
return res
#
print(checkers('abbhx',(7,8,9)))
def checkers(a,b):
res=[]
сс=(a,b)
for i in range(0,max(len(a),len(b))+1,2):
for k in (0,1):
try:
res.append(сс[k][i+k])
except:
res.append(0)
return res
#
print(checkers('abbhx',(7,8,9)))
def checkers(iterable1: typing.Iterable, iterable2: typing.Iterable):
cool_list = []
for i in range(len(iterable1)):
if i == 0 or i % 2 == 0:
cool_list.append(iterable1[i])
else:
cool_list.append(iterable2[i])
return cool_list
def inter(b):
for i in range(len(b)):
b[i] = int(b[i])
return b
b = input().split()
b = inter(b)
c = input().split()
c = inter(c)
lazy = str(checkers(b, c))
lazy = lazy.replace(',', '')
lazy = lazy.replace('[', '')
lazy = lazy.replace(']', '')
print(lazy)
Вот это чудо в лицее яндекса выдаёт ошибку такого характера:
Traceback (most recent call last):
File "/temp/executing/run.py", line 22, in <module>
print(to_str(checkers(gen(code[0]), gen(code[1]))))
~~~~^^^
IndexError: list index out of range
make: *** [Makefile:5: run] Error 1
Вот условие задания:
Необходимо написать функцию checkers, которая на вход получает два итерируемых объекта и возвращает список, в котором элементы чередуются. То есть первый элемент равен первому элементу из первого объекта, а второй элемент равен второму из второго. Неиспользуемые элементы никуда не добавляются.
Если в одном объекте элементов недостаточно, а во втором они всё ещё есть и будут добавлены в выходную последовательность, то значения из более короткого объекта заполняются нулями.
Сигнатура функции:
def checkers(iterable1: typing.Iterable, iterable2: typing.Iterable) -> list: ...
Пример вызова:
checkers([1, 2], [3, 4])
Выдает то всё верно, плюс компилятор в онлайне работает все отлично, кароче я не понимаю где оплошал(
Подскажите, кто может, но позже полутора часов уже не нужно будет от поста этого вопроса.