有没有一种更像python的方法来编写这个代码。我试图找出两个元素在不同不同集合中的所有组合,但不包括同一集合中成员之间的组合。所以如果0和1在同一个集合中,我不想要01的组合。你知道吗
我更喜欢这样的模块。我看着https://docs.python.org/2/library/itertools.html 但这需要输入一个列表,并给出其元素的组合。我想输入多个集合。你知道吗
我想我需要itertools.组合生成所有组合,然后减去相同集合中的组合,但这似乎是浪费。有更好的办法吗?你知道吗
setA=[0,1,4]
设定值=[2,3]
边包含(['02','03','13','12','42','43'])
setC=[0,2]
setD=[1]
集合=[3]
边包含集合['32','31','01','21','30']
edge= set()
edges= set()
setA = set([0, 1, 4])
setB = set([2, 3])
setC = set([0,2])
setD = set([1])
setE = set([3])
print "Two set combinations of elements (not between elements in same set)"
for i in setA:
for j in setB:
if str(i)+str(j) in edge:
pass
edge.add( str(i)+str(j) )
print edge
print "Three set combinations of elements (not between elements in same set)"
for i in setC:
for j in setD:
if str(i)+str(j) in edges:
pass
edges.add( str(i)+str(j) )
for k in setE:
if str(k)+str(i) in edges:
pass
edges.add( str(k)+str(i) )
if str(k)+str(j) in edges:
pass
edges.add( str(k)+str(j) )
print edges
这条线怎么样?你知道吗
相关问题 更多 >
编程相关推荐