考虑我有一个类似的数组:
c = [["a","b","a"],[1,2,3]]
现在我需要将这两部分结合起来,我想把它变成一个字典,它计算组合发生的频率(值是出现的次数)。 看起来应该是这样的:
combinations = {("a",1):1, ("b",2):1, ("a",3):1)}
我是一个初学者并且有一些方法,如:
(c[0][0],[-1][0]),(c[0][1],[-1][1]),...
等。用于创建我需要的对,但是如果我的数组具有不同的大小(这两个部分应该保持相同的大小),这不是非常有用。另外,我不知道如何将出现次数作为值。
非常感谢任何帮助!
答案 0 :(得分:1)
您可以使用zip
组合2个子列表和count
来计算列表中的特定元素。
>>> c = [['a','b','a','a'],[1,2,3,1]]
>>> pairs = zip(c[0],c[1])
>>> pairs
[('a', 1), ('b', 2), ('a', 3), ('a', 1)]
>>> result = {i: pairs.count(i) for i in pairs}
>>> result
{('a', 1): 2, ('b', 2): 1, ('a', 3): 1}
最后一个命令使用Dict Comprehension。