Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python在文件中查找最小值和最大值的第一个实例?_Python - Fatal编程技术网

如何使用python在文件中查找最小值和最大值的第一个实例?

如何使用python在文件中查找最小值和最大值的第一个实例?,python,Python,我使用的文件包含以下格式的多行数据: Niger WB_LI 37 Africa 2000 第一栏是国家名称,第二栏是收入水平,第三栏是接种率,第五栏是年份。我试图找出用户给出的年度和收入水平的最大和最小百分比。我还试图找到文件中第一次出现这两个值的行。到目前为止,我编写的代码给出了正确的最小值和最大值,但没有给出它们第一次出现的行。例如,如果有一堆零,我应该能够

我使用的文件包含以下格式的多行数据:

Niger                                              WB_LI   37 Africa                    2000
第一栏是国家名称,第二栏是收入水平,第三栏是接种率,第五栏是年份。我试图找出用户给出的年度和收入水平的最大和最小百分比。我还试图找到文件中第一次出现这两个值的行。到目前为止,我编写的代码给出了正确的最小值和最大值,但没有给出它们第一次出现的行。例如,如果有一堆零,我应该能够打印出第一个国家的前0%,而不是最后一个国家的0%。我的代码是:

#looping through each line
for line in input_file:
            #checking for user input(income level and year) in each line
            if 'WB_LI' in line and year in line:
                #printing lines that matches user input
                print(line)
                total+=int(line[58:61])
                count_instance+=1
                if int(line[58:61])>int(max_value):
                       max_value=(line[58:61])
                if max_value in line:
                    max_line=line
                if int(line[58:61])<int(min_value):
                    min_value=(line[58:61])
                if min_value in line:
                    min_line=line
#每行循环
对于输入_文件中的行:
#检查各行中的用户输入(收入水平和年份)
如果“WB_LI”符合要求,且年份符合要求:
#打印与用户输入匹配的行
打印(行)
总计+=整数(第[58:61]行)
count_实例+=1
如果int(第[58:61]行]>int(最大值):
最大值=(第[58:61]行)
如果行中的最大值:
最大线=线

如果int(line[58:61])你就快到了;当在该行中找到最大值或最小值时,不要存储该行,而是在相同的
if
语句中,在找到新的最大值或最小值时存储该行:

for line in input_file:
    if 'WB_LI' in line and year in line:
        #printing lines that matches user input
        percentage = int(line[58:61])
        total += percentage
        count_instance+=1
        if percentage > max_value:
            max_value = percentage
            max_line = line
        if percentage < min_value:
            min_value = percentage
            min_line = line
输入文件中的行的
:
如果“WB_LI”符合要求,且年份符合要求:
#打印与用户输入匹配的行
百分比=整数(第[58:61]行)
总数+=百分比
count_实例+=1
如果百分比>最大值:
最大值=百分比
最大线=线
如果百分比<最小值:
最小值=百分比
最小线=线

为了方便起见,这段代码每行只解析一次百分比。

我认为这对非洲人民来说是非常无礼的。@Marian非常感谢您的输入。我尝试了你的代码,它确实给出了正确的答案。谢谢你的帮助。