📜  python 计数字典 - Python (1)

📅  最后修改于: 2023-12-03 14:46:18.373000             🧑  作者: Mango

Python 计数字典

在Python中,数字典指的是将数字作为键,记录它们在一个可迭代对象中出现的次数的数据结构。这在数据分析、文本处理、机器学习等领域中非常常见。Python提供了多种方式来计算数字典,下面让我们来一一介绍。

使用 collections.Counter

collections.Counter 是 Python 内置的用于计数的类,我们可以直接使用它来生成一个数字典。下面是一个例子:

import collections

numbers = [1, 2, 3, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5]
counter = collections.Counter(numbers)

print(counter)
# Output: Counter({1: 4, 2: 4, 3: 4, 4: 4, 5: 3, 6: 1, 7: 1})

在这里,我们先定义了一个包含了数字的列表 numbers,然后用 collections.Counter(numbers) 来生成数字典 counter。最后,我们打印出 counter,可以看到每个数字出现的次数。

使用 for 循环

如果不想使用 collections.Counter,我们也可以使用一个简单的 for 循环来手动构建数字典。下面是一个例子:

numbers = [1, 2, 3, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5]
counter = {}

for number in numbers:
    if number in counter:
        counter[number] += 1
    else:
        counter[number] = 1

print(counter)
# Output: {1: 4, 2: 4, 3: 4, 4: 4, 5: 3, 6: 1, 7: 1}

在这个例子中,我们初始化了一个空字典 counter,然后遍历列表 numbers 中的每个数字 number。如果 number 已经出现过,就将它在 counter 中的计数加 1;否则,就将它在 counter 中的初始计数设为 1。

使用 dict.get()

还有一种方法是使用 dict.get() 方法。这个方法会返回键对应的值,如果键不存在则返回默认值(默认为 None)。通过指定默认值为 0,我们可以在对数字典进行计数时避免重复的代码。下面是一个例子:

numbers = [1, 2, 3, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5]
counter = {}

for number in numbers:
    counter[number] = counter.get(number, 0) + 1

print(counter)
# Output: {1: 4, 2: 4, 3: 4, 4: 4, 5: 3, 6: 1, 7: 1}

在这个例子中,我们使用了 dict.get() 方法来获取每个数字在 counter 中的计数。如果 counter 中不存在这个数字,dict.get() 就会返回默认值 0,然后再将 1 加上去。这样一来,我们就可以避免在 for 循环中写重复的代码了。

总结

以上介绍了三种不同的方法来计算数字典:使用 collections.Counter,使用 for 循环,以及使用 dict.get()。这些方法可以让我们快速、准确地统计数字在列表中出现的次数,非常适用于各种数据处理和分析的场景。