我有一本字典。
d = {
'Cause Class': {'CC1', 'CC2'},
'Cause Type': {'Ct1', 'Ct2', 'Ct3', 'Ct4'},
'Incident Type': {'It1', 'It2', 'It3'}
}
我想找到两个元素的组合,其中每个元素必须来自不同的判决键。
例如:('CC1','Ct1')
就是这样的组合,而('Ct1','Ct2')
不是这样的组合。
我已经试过这个了
ksgg = []
for i in d:
#print(i)
for j in d:
if i != j:
ksgg.append(list(set(it.product(d[i],d[j]))))
但是它给了('CC1','Ct1')
和('Ct1','CC1')
两个不同的组合,但是我只想要其中一个。
不要在键上嵌套循环,而是将所有值传递给itertools。组合()
;它将选择给定长度的唯一组合:
from itertools import combinations, product
ksgg = []
for set1, set2 in combinations(d.values(), 2):
ksgg += product(set1, set2)
对于给定词典,将创建以下组合:
>>> from itertools import combinations, product
>>> for set1, set2 in combinations(d, 2):
... print(set1, set2, sep=' - ')
...
Cause Class - Cause Type
Cause Class - Incident Type
Cause Type - Incident Type
配对的确切顺序根据字典顺序而不同。
完整演示:
>>> ksgg = []
>>> for set1, set2 in combinations(d.values(), 2):
... ksgg += product(set1, set2)
...
>>> from pprint import pprint
>>> pprint(ksgg)
[('CC1', 'Ct4'),
('CC1', 'Ct2'),
('CC1', 'Ct1'),
('CC1', 'Ct3'),
('CC2', 'Ct4'),
('CC2', 'Ct2'),
('CC2', 'Ct1'),
('CC2', 'Ct3'),
('CC1', 'It2'),
('CC1', 'It1'),
('CC1', 'It3'),
('CC2', 'It2'),
('CC2', 'It1'),
('CC2', 'It3'),
('Ct4', 'It2'),
('Ct4', 'It1'),
('Ct4', 'It3'),
('Ct2', 'It2'),
('Ct2', 'It1'),
('Ct2', 'It3'),
('Ct1', 'It2'),
('Ct1', 'It1'),
('Ct1', 'It3'),
('Ct3', 'It2'),
('Ct3', 'It1'),
('Ct3', 'It3')]
假设有几个数组: 我需要找出所有可能的元素集合(1,2,3,4,5...)中的每一个在至少两个阵列(A,B,C....)并以下列方式显示它们: 实际输入是包含字符串的文件。可能有数千个文件,每个文件可能包含一百多个密钥字符串。 我尝试了下面的方法:首先,我通过比较所有可能的数组对来生成元素集。然后,我试图通过使用逻辑生成其他集合——元素集合的交集在数组集合的并集中很常见。像这样: 从上面我们可以得
这是一个算法问题。如果我错过了Python中任何有帮助的现有函数,请大喊一声。 给定一组元素的,我们可以在Python中使用函数来找到所有唯一的k元素子集。让我们调用包含所有这些子集的集合。请注意,每个这样的子集都有不同的元素。 问题是两步走。首先,给定这些k-不同元素子集,我想组合(其中的一些),这样(组合只是一些子集的超集): > 构图中任意两个子集之间的交集为空 构图中所有子集的并集给出的正
smove srckey dstkey member 从srckey对应set中移除member并添加到dstkey对应set中,整个操作是原子的。成功返回1,如果member在srckey中不存在返回0,如果key不是set类型返回错误
问题内容: 我不了解Python从保持集中应用的顺序。例如: 的顺序是。为什么“ A”在“ C”之前(可能是字母顺序)?为了保留添加顺序,我必须做什么? 问题答案: 您不能有订单集。而且没有办法告诉Python如何订购它。检查此答案以找到替代方法。
问题内容: 我有一个包含一组其他实体的实体。 Entity1包含SetEntityTwos 我想为entityTwos内部的“ id”字段创建搜索条件。 我搜索了,但没有得到任何答案。有人有主意吗? 谢谢,斯里 问题答案: 很容易。就像是:
问题内容: 我有一个Python,我将根据条件从中逐个删除元素。当集合只剩下1个元素时,我需要返回该元素。如何从集合中访问此元素? 一个简化的例子: 问题答案: 用途: 在您的情况下,它将是: 但是请注意,这将从集合中删除该项目。如果不希望这样做,则可以使用| : 演示: