Python实现集合关系

时间:2015-04-04 21:15:49

标签: python

如何使用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}关系中的所有有序对。"

3 个答案:

答案 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]