使用Python的Counter统计频次时如何将数字替换为星号(*)展示
实现方法
在Python中,字符串可以直接和整数相乘,'*' * n 会返回由n个星号拼接成的字符串,你只需要把原代码中打印时调用str(value)的部分替换成'*' * value即可。
修改后的完整代码
from collections import Counter data = ["Bob", "Bob", "Sally", "Tom", "Bob", "Tom", "Evan", "Sally", "Evan", "Evan"] c = Counter(data) for key, value in c.items(): print(key + "\t " + '*' * value)
可选优化:对齐优化
如果后续姓名长度差异较大,想要保证星号列始终对齐,可以用字符串格式化固定姓名字段的宽度:
for key, value in c.items(): # 固定姓名字段左对齐,占14个字符宽度,和原有的制表符空格宽度对应 print(f"{key:<14}{'*' * value}")
内容的提问来源于stack exchange,提问作者Evan Schneider
相关产品推荐
相关产品推荐

