如何使用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非常感谢您的输入。我尝试了你的代码,它确实给出了正确的答案。谢谢你的帮助。