Как напечатать элементы двух списков вместе

#python-3.x #list #for-loop

#python-3.x #Список #for-цикл

Вопрос:

У меня есть два списка с разным количеством элементов. Я хотел бы напечатать каждый элемент первого списка с каждым элементом второго списка и так далее.

 a = [1,2,3,4,5]
b = ["banana", "orange", "pear"]
  

Результат, который я хотел бы получить:

 1 banana

1 orange

1 pear

2 banana 

2 orange
  

и так далее.

Я попробовал это:

 a = [1,2,3,4,5]
b = ["banana", "orange", "pear"]

for i,k in zip(a,b):
    print(i, k)
  

но я получаю этот вывод:

 1 banana
2 orange
3 pear

Process finished with exit code 0
  

Ответ №1:

Вы ищете itertools.product :

 >>> import itertools as it
>>> a = [1,2,3,4,5]
>>> b = ["banana", "orange", "pear"]
>>> for x in it.product(a, b):
...     print(x)
... 
(1, 'banana')
(1, 'orange')
(1, 'pear')
(2, 'banana')
(2, 'orange')
(2, 'pear')
(3, 'banana')
(3, 'orange')
(3, 'pear')
(4, 'banana')
(4, 'orange')
(4, 'pear')
(5, 'banana')
(5, 'orange')
(5, 'pear')
  

Комментарии:

1. Как я могу просто напечатать строку вместо кортежа?

2. @Carl Вы также можете использовать print(*x) , если вам не нравится печатать кортеж.