如何使用列表理解打印空间分隔的2个列表的笛卡尔积的元组?

时间:2017-04-25 04:10:27

标签: python-2.7

我写了以下代码:

import itertools
for each in list(itertools.product(list1,list2)):
    print each,

它工作正常,但我想学习如何编写以使用列表理解在空格分隔的同一行中打印此笛卡尔积列表的每个元组。

输出应该是这样的:

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

是list1 = [1,2]& list2 = [3,4]

我试过但语法错误来了。请提前帮助,谢谢。

2 个答案:

答案 0 :(得分:0)

这似乎是你想要的(在Python3中,对于Python2,只需删除括号并在打印后放置一个空格):

print(str([ each for each in list(itertools.product(list1,list2)) ])[1:-1].replace(", (", " ("))

希望有所帮助!我真的不知道你为什么要那样做。此外,请注意,使用此解决方案,即使输出是指定的输出,您最终也会得到一个字符串而不是列表。

答案 1 :(得分:0)

使用以下代码(在python 3中):

from itertools import product
a = "1 2"
b = "3 4"
A = map(int, (a.split(' ')))
B = map(int, (b.split(' ')))
print(' '.join(map(str, product(A, B))))