说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)编写一个 Python 函数,传入一个列表,输出各个元素出现的数量,以字典形式统计。
比如,传入 ['a', 'c', 'b', 'c', 'a', 'a']
返回 {'a': 3, 'c': 2, 'b': 1}
。
使用 collections.Counter 对列表 lst 进行计数,得到一个 Counter 对象,对 Counter 对象使用 dict() 将其转换为一个标准字典:
import collections
def func(lst):
counter = collections.Counter(lst)
return dict(counter)
func(['a', 'c', 'b', 'c', 'a', 'a'])
# {'a': 3, 'c': 2, 'b': 1}
用 for 循环计算:
def func(lst):
counter = {}
for i in lst:
if i in counter:
counter[i] += 1
else:
counter[i] = 1
return counter
func(['a', 'c', 'b', 'c', 'a', 'a'])
# {'a': 3, 'c': 2, 'b': 1}
使用while 循环:
def func(lst):
counter = {}
while lst:
element = lst[-1]
lst.pop()
if element in counter:
counter[element] += 1
else:
counter[element] = 1
return counter
func(['a', 'c', 'b', 'c', 'a', 'a'])
# {'a': 3, 'c': 2, 'b': 1}
要么掌握 Counter 计数器类型,要么学会通过循环构造字典。
(完)
更新时间:2024-08-16 22:34:15 标签:python 习题 统计 列表