我有一组元组(set1),其中每个元组都是(somename1,somename2,Number)。数字表示我们看到somename1,somename2的次数。 我想将它与一个不同的集合(set2)合并,其中somename1,somename2可能在集合中,并相应地更新Number。 现在,出于显而易见的原因,set1& set2返回一个空集。如何有效地更新set1?
示例数据= Set1 = {('soda','coca cola',5), ('chocolate','mars',13)}
答案 0 :(得分:2)
您可以使用计数器:
>>> Set1 = {('soda','coca cola'): 5}
>>> Set2 = {('soda','coca cola'): 3, ('chocolate','mars'): 10}
>>> {k: Set1[k] + Set2.get(k, 0) for k in Set1}
如果您不想在Set2中添加密钥,如果它们不在Set1中,您可以使用dict理解:
var push = PushNotification.init({
android: {
senderID: "gcm_id",
icon: "ic_notification",
iconColor: "black"
}
});
答案 1 :(得分:0)
以下是一个示例,如果您想使用集合进行输入,并且只对任何格式的结果数据感兴趣(看起来我最近使用defaultdict
):< / p>
from itertools import chain
from collections import defaultdict
s1 = set((
('a', 'b', 1), ('c', 'd', 2)
))
s2 = set((
('a', 'b', 2), ('c', 'd', 3), ('e', 'f', 4)
))
s3 = defaultdict(int)
for name1, name2, count in chain(s1, s2):
s3[name1, name2] += count
for (name1, name2), total_count in s3.items():
print(name1, name2, total_count)
打印:
c d 5
e f 4
a b 3