Цикл с несколькими разными значениями
Как можно запустить цикл с разным количеством данных в нем?
a = [1,2,3,4]
b = [1,2,3]
for i,j in zip(a,b):
print(i,j)
то выводит меньшую часть. Как можно сделать так, чтобы выводились оба, даже если у одного больше, чем у другого?
Ответы (1 шт):
Автор решения: videx
→ Ссылка
def merge_lists(list1, list2):
if list1 > list2:
ret_arr = []
for i in range(len(list1)):
try:
ret_arr.append((list1[i], list2[i]))
except:
ret_arr.append((list1[i], None))
return ret_arr
elif list1 < list2:
ret_arr = []
for i in range(len(list2)):
try:
ret_arr.append((list1[i], list2[i]))
except:
ret_arr.append((None, list2[i]))
return ret_arr
elif list1 == list2:
return list(zip(list1, list2))
Результат работы с массивом a и b:
[(1, 1), (2, 2), (3, 3), (4, None)]
Теперь выведем в виде указанном в вопросе:
a = [1, 2, 3, 4]
b = [1, 2, 3]
mergeList = merge_lists(a, b)
for i in mergeList:
print(i[0], i[1])
Вывод:
1 1
2 2
3 3
4 None