Python 对列表中的不同范围元素进行计数

Python 对列表中的不同范围元素进行计数,python,list,for-loop,count,Python,List,For Loop,Count,我有一份从1到100的分数表 我需要在PYTHON中找到以下解决方案 0-10 0 10-20 5 ***** 30-40 7 ******* 40-50 8 ******** 以此类推,最多100个。0-10在列表中没有实例。数字和*表示列表中该类别中有多少个等级 我被告知先创建一个列表,列出每个数量的总等级,然后再整理表格 我应该使用for循环 我尝试了所有不同的代码,但无法创建列表。如果不单独列出实例,我似乎无法获得要添加到实例中的代码 这就是我目前所拥有的 data = [9

我有一份从1到100的分数表

我需要在PYTHON中找到以下解决方案

0-10   0
10-20  5 *****
30-40  7 *******
40-50  8 ********
以此类推,最多100个。0-10在列表中没有实例。数字和
*
表示列表中该类别中有多少个等级

我被告知先创建一个列表,列出每个数量的总等级,然后再整理表格

我应该使用for循环

我尝试了所有不同的代码,但无法创建列表。如果不单独列出实例,我似乎无法获得要添加到实例中的代码

这就是我目前所拥有的

data = [90,30,13,67,85,87,50,45,51,72,64,69,59,17,22,23,
        44,25,16,67,85,87,50,45,51,72,59,14,50,55,32,23,
        24,25,37,28,39,30,33,35,40,34,41,43,94,95,98,99,
        44,45,47,48,49,53,61,63,69,75,77,60,83]

total=0
myList=[]
for grade in data:
myList.append(grade>=10)
data.append(0)
for grade in data(len(myList)):
 total=+1
 elif(grade>10 and grade<20): 
 myList.append(len(grade))
 total=+1
 print(myList)
data=[90,30,13,67,85,87,50,45,51,72,64,69,59,17,22,23,
44,25,16,67,85,87,50,45,51,72,59,14,50,55,32,23,
24,25,37,28,39,30,33,35,40,34,41,43,94,95,98,99,
44,45,47,48,49,53,61,63,69,75,77,60,83]
总数=0
myList=[]
对于数据中的等级:
myList.append(等级>=10)
data.append(0)
对于数据中的等级(len(myList)):
总数=+1

elif(grade>10和grade由于您是一名完全的初学者,下面是Python的详细解决方案:

首先,创建一个值为0-10的列表,0表示等级0-9, 10-99级为1-9级,100级为10级。 为此,我们使用10对年级进行//运算

d = []
for grade in data: 
    d.append(grade // 10)
也可以使用以下方法实现:

接下来,使用
count()
方法计算
d
中的每个值。我们可以为此创建另一个列表(同样使用列表理解):

最后打印结果:

print('0-9'  , gc[0], '*'*gc[0])
print('10-19', gc[1], '*'*gc[1])
print('20-29', gc[2], '*'*gc[2])
print('30-39', gc[3], '*'*gc[3])
...
输出:

0-9 0 
10-19 4 ****
20-29 7 *******
30-39 8 ********
...

由于其强大的库,Python正在取得巨大的进步

不要重新发明轮子,从标准库中使用

from collections import Counter

cnt = Counter(d//10 for d in data)
for k, n in sorted(cnt.items()):
    print(f"{k*10}-{k*10+9} {n} {'*'*n}")
产生

10-19 4 ****
20-29 7 *******
30-39 8 ********
40-49 11 ***********
50-59 9 *********
60-69 8 ********
70-79 4 ****
80-89 5 *****
90-99 5 *****

注意:为了避免不必要地创建另一个列表,我们传递了一个生成器表达式,它可以避免不必要地创建另一个列表

您可以在这里发布您的尝试吗?如果您有代码来显示,人们会很乐意帮助您。否则,我担心问题有点过于宽泛。也许当
语句可以满足您的需要时,一个简单的
案例就可以了请帮助发布您的表结构、数据示例和所需结果的示例。非常感谢您的帮助。提供的信息将非常有用。出于好奇,是否有使用for循环和if语句的解决方案。这是我们在设置练习之前看到的。因此我假设这是在我需要使用的时候?
from collections import Counter

cnt = Counter(d//10 for d in data)
for k, n in sorted(cnt.items()):
    print(f"{k*10}-{k*10+9} {n} {'*'*n}")
10-19 4 ****
20-29 7 *******
30-39 8 ********
40-49 11 ***********
50-59 9 *********
60-69 8 ********
70-79 4 ****
80-89 5 *****
90-99 5 *****