Инструкция Python print выводит адрес вместо значения

#python

Вопрос:

Это код, который я сделал

 from itertools import product
lst1=list(map(int,input().split()))
lst2=list(map(int,input().split()))
l3=product(lst1,lst2)
 

Ввод:

 1 2
2 3 
 

Выход:

 <itertools.product object at 0x7f02bdedb500>
 

Вывод, который я хочу:

 (1, 3) (1, 4) (2, 3) (2, 4)
 

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

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

1. Попробуйте сделать так: l3= список(продукт(lst1,lst2)), затем выведите l3.

2. itertools.product производит итерацию, точно так же, как range . Чтобы принудительно отобразить результат в списке, просто используйте list(iterable) , где iterable в вашем случае можно выполнить любую итерацию product(lst1,lst2) .

3. просто добавьте print(list(l3))

4. поэтому просто повторите каждый элемент и распечатайте с end flag помощью as print(i, end=' ')

Ответ №1:

product(lst1,lst2) возвращает itertools.product объект, который просто используется map function для обновления внутреннего 1-го элемента индекса кортежа или повторения каждого элемента.

Поэтому используйте функцию map и обновляйте каждый кортеж на 1 с помощью лямбда-функции :

 l3= list(map(lambda i: (i[0], i[-1] 1), product(lst1,lst2)))
print(l3)
 

выход :

 [(1, 3), (1, 4), (2, 3), (2, 4)]
 

Проблема с этим выводом заключается в том, что это строковое представление list object , поэтому лучше всего использовать этот метод.
Поэтому используйте итерацию, хотя этот повторяющийся объект :

 for i in l3:
    i = list(i)
    i[-1]  = 1
    print(tuple(i), end=' ')
 

выход :

 (1, 3) (1, 4) (2, 3) (2, 4)
 

Ответ №2:

Преобразуйте или приведите его в список, это работает.

 from itertools import product
lst1=list(map(int,input().split()))
lst2=list(map(int,input().split()))
l3=list(product(lst1,lst2))
 

Ответ №3:

«itertools.product» возвращает генератор, чтобы получить вывод списка, который вам нужен :

 list(l3)
 

Однако, не уверен, откуда вы взяли свои ценности, я получил :

 [(1, 2), (1, 3), (2, 2), (2, 3)]
 

Ответ №4:

Вы можете повторить l3, чтобы получить желаемый результат:

 for i in l3:
    print(i, end=" ")