@Mister_Mad

Как вывести результат двух списков циклом?

x = [1, 2,8]
y = [4, 5]

for i, j in zip(x, y):
   print(str(i) + " / " + str(j))


получаю результат:
1 / 4
2 / 5


Как вывести два списка одним циклом полностью результат?
ожидаемый результат:
1 / 4
2 / 5
8 / ''
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
Есть такой вариант

import itertools

x = [1, 2,8]
y = [4, 5]

for x, y in list(itertools.zip_longest(x,y)):
  print(x, y)


Result:

1 4
2 5
8 None
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@alexbprofit
Junior SE
x = [1, 2, 8]
y = [4, 5]

def ret(x, y):
  if len(x) == len(y):
    return [f"{x[i]}/{y[i]}" for i in range(len(x))]
  else:
    t = y if len(x) > len(y) else x
    z = t + [None]*(abs(len(x) - len(y)))

    return [f"{x[i]}/{z[i]}" for i in range(len(x))]

print(ret(x, y), sep='\n')
Ответ написан
Комментировать
seven5674
@seven5674
Старый я уже что бы что-то в себе менять
x = [1,2,8]
y = [4,5]

for i,j in (dict.fromkeys(x) | dict(zip(x, y))).items():
    print(i, j)

...
1 4
2 5
8 None
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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