如何使用python实现以下功能?我尝试过使用lambda表达式和其他一些方法,但是我没有得到理想的结果。基本上,我应该收到一组满足检查的关系。 I.E它们必须能够彼此整除,所以{(1,1), (1,2), (1,3),...(6,6)}.
以下是实际问题:
在Python中,设置变量说S = {1,2,3,4,5,6}
;然后执行以下操作:"列出集合R = {(a,b) : a divides b}
上的{1,2,3,4,5,6}
关系中的所有有序对。"
答案 0 :(得分:1)
你可以通过列表理解来实现 -
S = [1,2,3,4,5,6]
result = [ (x,y) for x in S for y in S if y%x==0]
答案 1 :(得分:1)
您可以在列表理解中使用itertools.product
,并且您可以根据需要将它们整除,您可以使用条件i%j==0 or j%i==0
:
>>> from itertools import product
>>> [(i,j) for i,j in product(S,repeat=2) if i%j==0 or j%i==0]
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 1), (2, 2), (2, 4), (2, 6), (3, 1), (3, 3), (3, 6), (4, 1), (4, 2), (4, 4), (5, 1), (5, 5), (6, 1), (6, 2), (6, 3), (6, 6)]
答案 2 :(得分:0)
[{(a,b):a / b}表示S中的b为S]