python 统计人名及其出现次数

img


这是我列表中的元素,我想实现的结果: 王宝泉:x次,陈有权;x次 这样子的统计人名及其出现次数

import random
org = []
for i in range(20):
    a =random.choice('abcdefghijklmnopqrstuvwxyz')
    org.append(a)
print(org)       ###生成初始数据
tmp = set()   ####中间Set,容纳所有元素
result=[]       ### 结果集
for i in org:
    tmp.add(i)
for i in tmp:
    result.append([i,str(org.count(i))+'次'])
print(result)

效果

img

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7429450
  • 这篇博客也不错, 你可以看下python x轴显示指定时间刻度
  • 除此之外, 这篇博客: python程序设计:某体操比赛共有10名运动员参加,12名评委将根据运动员表现进行评分(满分10分),请编写Python程序,解决下列问题:中的 第一问:每个运动员评分中去掉一个最高分和一个最低分,计算平均成绩,然后给出运动员排名。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •  def data_solve(self):           #读取数据源
            filename = self.find_file
            with open(filename) as f:            #打开文件
                 self.data1 = f.read()                    #读取文件
            self.data2 = list(map(float,re.findall('\d\.\d',self.data1)))      #将文本中的数字(float)提出
            step = 12                               #将每个运动员的得分分离开
            self.data2 = np.mat([self.data2[i:i+step] for i in range(0,len(self.data2),step)]) 
            self.Grades1 = self.data2.tolist()                        #第一组数据,第一问用
            #self.Grades_mas = np.transpose(self.data2).tolist()          #将每个评为的评分分离开
            self.Grades2 = list.copy(self.Grades1)                    #第二组数据,第二问用
            self.Grades3 = list.copy(self.Grades1)                    #第三组数据,第三问用
    
  • 以下回答由chatgpt基于相关博客总结生成:

    可以使用Python中的collections库里的Counter函数来实现统计列表中人名出现的次数。具体步骤如下:

    1. 确定需要统计的列表,例如下方的示例列表:

    names = ['Alice', 'Bob', 'Charlie', 'Alice', 'David', 'Alice', 'Charlie', 'Bob', 'Alice', 'Eve']

    1. 导入collections库,使用Counter函数对列表进行统计:

    from collections import Counter name_count = Counter(names)

    1. 解读统计结果并输出期望的格式:

    for name, count in name_count.items(): print(f'{name}: {count}次')

    输出结果为:

    Alice: 4次 Bob: 2次 Charlie: 2次 David: 1次 Eve: 1次

    如果需要将统计结果以字典的形式返回,可以使用字典推导式来实现:

    name_dict = {name: count for name, count in name_count.items()} print(name_dict)

    输出结果为:

    {'Alice': 4, 'Bob': 2, 'Charlie': 2, 'David': 1, 'Eve': 1}

    注意,上述代码均为纯Python代码,不需要使用到OpenAI的API和Streamlit框架。