用python 将文本中的数据读取,统计某个区间的个数,并将区间与个数存放在另一个文本里,这个要怎样实现

Python019

用python 将文本中的数据读取,统计某个区间的个数,并将区间与个数存放在另一个文本里,这个要怎样实现,第1张

代码如下:

#coding=utf-8

# 从文件中加载数据

def load_numbers(file):

    numbers = []

    with open(file, 'r') as f:

        for line in f.readlines():

            numbers.append(int(line))

    return numbers

if __name__ == '__main__':

    # 从文件 data.txt 中加载数字

    numbers = load_numbers('data.txt')

    # 区间下限

    min = 10

    # 区间上限

    max = 30

    # 统计区间数字个数

    cnt = 0

    for val in numbers:

            # 如果不要包含上下限,去掉 = 号

        if val >= min and val <= max:

            cnt = cnt + 1

    # 将结果保存到文件 result.txt 中

    with open('result.txt', 'w') as f:

        f.write('[%d,%d], %d' % (min, max, cnt))

    

    print('done.')

不要使用内建函数的名字: list 作为变数名

你想要的区间重叠了, 比如说元素 50 就不知道要分在 0-50 还是 50-100 了

存取字典应该用 [] 而不是 ()!

我刚刚入门Python,下面是我的代码,可能很简陋,如果有什么意见望告知,相互学习:

'''

给定一个年龄列表,输出以5为年龄分段的最多人数分段

'''

people_age=[12,56,78,48,56,23,36,2,45,23]#输入年龄

age_min=min(people_age)

age_max=max(people_age)

count=(age_max-age_min)//5

if count>0:

    count+=1

fenduan=[0,]*count

for age in people_age:

    fenduan[(age-age_min)//5]+=1

for i in range(len(fenduan)):

    if(fenduan[i]==max(fenduan)):

        print("%d~%d" %(age_min+i*5,age_min+i*5+5))