Python 帮助。查找文件中的最大值并打印出带名称的值
Python help. Finding largest value in a file and printing out value w name
我需要创建一个打开文件的程序,然后读取文件中的值,然后打印出具有最大值的名称。
该文件包含以下信息:
Juan,27
Joe,16
Mike,29
Roy,10
现在我的代码如下:
UserFile=input('enter file name')
FileOpen=open(User File,'r')
for lines in User File:
data=line.split(",")
name=data[0]
hrs=data[1]
hrs=int(hrs)
LHRS = 0
if hrs > LHRS:
LHRS = hrs
if LHRS == LHRS:
print('Person with largest hours is',name)
打印出以下内容:
时间最长的人是胡安
工作时间最长的人是 Mike
我怎样才能让它只打印出真正最大的?
虽然您对初学者的努力令人印象深刻,但您在这里无法做的是..在跟踪最大值的同时跟踪名称!我确定可以按照您的方式完成,但我可以推荐一个替代方案吗?
import operator
让我们像我一样读入文件。这是一个很好的做法,此方法处理文件关闭,如果操作不当可能会导致许多问题。
with open('/Users/abhishekbabuji/Desktop/example.txt', 'r') as fh:
lines = fh.readlines()
现在我的每一行都在一个名为 lines
的列表中,它也有这个烦人的 \n
。让我们用空 space ''
替换它
lines = [line.replace("\n", "") for line in lines]
现在我们有一个这样的列表。 ['Name1, Value1', 'Name2, Value2'..]
我现在打算做的是,对于列表中的每个字符串项,将第一部分作为键,将第二部分的整数部分作为我的字典的值 example_dict
.所以在 'Name1, Value1'
中,Name1
是索引 0
中的项目, Name2
是我在索引 1
中的项目,当我把它变成一个列表时,就像我已经在下面完成并将键值对添加到字典中。
example_dict = {}
for text in lines:
example_dict[text.split(",")[0]] = int(text.split(",")[1])
print(example_dict)
给出:
{'Juan': 27, 'Joe': 16, 'Mike': 29, 'Roy': 10}
现在,获取值为max的键并打印。
largest_hour = max(example_dict.items(), key=operator.itemgetter(1))[1]
highest_key = []
for person, hours in example_dict.items():
if hours == largest_hour:
highest_key.append((person, hours))
for pair in highest_key:
print('Person with largest hours is:', pair[0])
我需要创建一个打开文件的程序,然后读取文件中的值,然后打印出具有最大值的名称。
该文件包含以下信息:
Juan,27
Joe,16
Mike,29
Roy,10
现在我的代码如下:
UserFile=input('enter file name')
FileOpen=open(User File,'r')
for lines in User File:
data=line.split(",")
name=data[0]
hrs=data[1]
hrs=int(hrs)
LHRS = 0
if hrs > LHRS:
LHRS = hrs
if LHRS == LHRS:
print('Person with largest hours is',name)
打印出以下内容:
时间最长的人是胡安
工作时间最长的人是 Mike
我怎样才能让它只打印出真正最大的?
虽然您对初学者的努力令人印象深刻,但您在这里无法做的是..在跟踪最大值的同时跟踪名称!我确定可以按照您的方式完成,但我可以推荐一个替代方案吗?
import operator
让我们像我一样读入文件。这是一个很好的做法,此方法处理文件关闭,如果操作不当可能会导致许多问题。
with open('/Users/abhishekbabuji/Desktop/example.txt', 'r') as fh:
lines = fh.readlines()
现在我的每一行都在一个名为 lines
的列表中,它也有这个烦人的 \n
。让我们用空 space ''
lines = [line.replace("\n", "") for line in lines]
现在我们有一个这样的列表。 ['Name1, Value1', 'Name2, Value2'..]
我现在打算做的是,对于列表中的每个字符串项,将第一部分作为键,将第二部分的整数部分作为我的字典的值 example_dict
.所以在 'Name1, Value1'
中,Name1
是索引 0
中的项目, Name2
是我在索引 1
中的项目,当我把它变成一个列表时,就像我已经在下面完成并将键值对添加到字典中。
example_dict = {}
for text in lines:
example_dict[text.split(",")[0]] = int(text.split(",")[1])
print(example_dict)
给出:
{'Juan': 27, 'Joe': 16, 'Mike': 29, 'Roy': 10}
现在,获取值为max的键并打印。
largest_hour = max(example_dict.items(), key=operator.itemgetter(1))[1]
highest_key = []
for person, hours in example_dict.items():
if hours == largest_hour:
highest_key.append((person, hours))
for pair in highest_key:
print('Person with largest hours is:', pair[0])