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)
效果
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) #第三组数据,第三问用
可以使用Python中的collections库里的Counter函数来实现统计列表中人名出现的次数。具体步骤如下:
names = ['Alice', 'Bob', 'Charlie', 'Alice', 'David', 'Alice', 'Charlie', 'Bob', 'Alice', 'Eve']
from collections import Counter name_count = Counter(names)
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框架。