#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)
, если вам не нравится печатать кортеж.