python: 如何计算给定元素在列表中出现的频率
python: How to count the frequency of given elements in a list
我了解计数器函数计算列表中每个元素的频率。但我希望它包括给定元素的频率,即使该元素没有出现在列表中。
例如:
预期元素列表如下:
expected_element = [1,2,3,4,5,6,7]
对于数据集 a,b:
a = [1,1,1,1,6,6,6,3,3,4,5,5]
b = [2,2,7,1,7,5,3,5,5]
而我想要的是计算 a 和 b 中 expected_element 的频率:
一个:
keys() = [1,2,3,4,5,6,7]
values() = [4,0,2,1,2,3,0]
对于 b:
keys() = [1,2,3,4,5,6,7]
values() = [1,2,1,0,3,0,2]
你可以使用字典
expected_element = [1,2,3,4,5,6,7]
a = [1,1,1,1,6,6,6,3,3,4,5,5]
b = [2,2,7,1,7,5,3,5,5]
a_occurance = dict()
b_occurance = dict()
for i in expected_element:
a_occurance[i]=0
b_occurance[i]=0
for i in a:
a_occurance[i]+=1
for i in b:
b_occurance[i]+=1
print a_occurance.keys()
# [1, 2, 3, 4, 5, 6, 7]
print a_occurance.values()
# [4, 0, 2, 1, 2, 3, 0]
print b_occurance.keys()
# [1, 2, 3, 4, 5, 6, 7]
print b_occurance.values()
# [1, 2, 1, 0, 3, 0, 2]
您可以使用 set(a)
中的唯一键创建一个字典,与空值配对,然后用 Counter(b)
:
更新它
from collections import Counter
a = [1,1,1,1,6,6,6,3,3,4,5,5]
b = [2,2,7,1,7,5,3,5,5]
frequencies = {key: 0 for key in set(a)}
frequencies.update(Counter(b))
print(frequencies)
输出:
{1: 1, 3: 1, 4: 0, 5: 3, 6: 0, 2: 2, 7: 2}
我了解计数器函数计算列表中每个元素的频率。但我希望它包括给定元素的频率,即使该元素没有出现在列表中。
例如:
预期元素列表如下:
expected_element = [1,2,3,4,5,6,7]
对于数据集 a,b:
a = [1,1,1,1,6,6,6,3,3,4,5,5]
b = [2,2,7,1,7,5,3,5,5]
而我想要的是计算 a 和 b 中 expected_element 的频率:
一个:
keys() = [1,2,3,4,5,6,7]
values() = [4,0,2,1,2,3,0]
对于 b:
keys() = [1,2,3,4,5,6,7]
values() = [1,2,1,0,3,0,2]
你可以使用字典
expected_element = [1,2,3,4,5,6,7]
a = [1,1,1,1,6,6,6,3,3,4,5,5]
b = [2,2,7,1,7,5,3,5,5]
a_occurance = dict()
b_occurance = dict()
for i in expected_element:
a_occurance[i]=0
b_occurance[i]=0
for i in a:
a_occurance[i]+=1
for i in b:
b_occurance[i]+=1
print a_occurance.keys()
# [1, 2, 3, 4, 5, 6, 7]
print a_occurance.values()
# [4, 0, 2, 1, 2, 3, 0]
print b_occurance.keys()
# [1, 2, 3, 4, 5, 6, 7]
print b_occurance.values()
# [1, 2, 1, 0, 3, 0, 2]
您可以使用 set(a)
中的唯一键创建一个字典,与空值配对,然后用 Counter(b)
:
from collections import Counter
a = [1,1,1,1,6,6,6,3,3,4,5,5]
b = [2,2,7,1,7,5,3,5,5]
frequencies = {key: 0 for key in set(a)}
frequencies.update(Counter(b))
print(frequencies)
输出:
{1: 1, 3: 1, 4: 0, 5: 3, 6: 0, 2: 2, 7: 2}