问题:
这里有一个列表作为输入[A,B,C,E]
输出:
[A,B]
[A,C]
[A,E]
[B,C]
[B,E]
[C,E]
基本上,我想把列表与第一个联合起来。
这里是代码:
pageSet_list = ['A', 'B', 'C', 'E']
pageSet_set = list() # To create a list of sets so that we can take their union
for page in pageSet_list:
toBeAdded = set(page)
pageSet_set.append(toBeAdded)
pageSet_list = list()
for i in range(len(pageSet_set)):
for j in range(i,len(pageSet_set)):
z=pageSet_set[i].union(pageSet_set[j])
if (len(z) == 2): # somethin = set([])
print 'z: ',z
pageSet_list.append(z)
此代码的输出:
z: set(['A', 'B'])
z: set(['A', 'C'])
z: set(['A', 'E'])
z: set(['C', 'B'])
z: set(['B', 'E'])
z: set(['C', 'E'])
错误:
z: set(['C', 'B'])
输出应为z: set(['B', 'C'])
。
现在最近,我知道set是一个无序的数据结构,因此它不维护元素的任何特定顺序。使用union
方法执行两个集合的并集操作会更改元素的顺序。
我的问题是:
如何在不使用数据类型set()?
的情况下执行set操作,并集和交集答案 0 :(得分:1)
import itertools
for acom in itertools.combinations('ABCD',2):
print acom