我正在尝试在 python 中执行一项任务,其中输入文件是 txt 文件。该函数旨在从文件中提取公司(1 公司,1 行)及其收入。公司名称和收入以分号(;)分隔。该函数应该返回获得最高收入的公司名称及其收入。
例如: 输入txt文件:
*Company 1;5000;6000;3000;8000
*Company 2;4000;2000;3000;9000;2000
*Company 3;5000;6000;3000;8000;3000;4000;5000
*Company 4;4000;6000;4000;8000
预期输出: 收入最大:公司3 收入是:34000
我尝试过这样的事情:
def comany_with_max_revenue():
list_of_lists = []
with open(name_file, 'r') as file:
for line in file:
list_of_lists.append(line.strip().split('\t'))
print(list_of_lists)
for company in lista_list:
elements_of_company = company.split(";")
print(list_of_lists)
输出是一个列表列表,每个列表只有一个元素(带有公司名称及其收入的字符串)我不知道如何将其更改为字符串和浮点数,然后如何找到收入最大的公司.
无需将数字转换为浮点数,因为它们都是整数。
用分号分隔每一行。第一个标记是公司名称(带有我们将删除的星号前缀)。剩下的token都是需要相加的数字。
构建元组列表(收入、公司),然后您可以对其进行排序以确定收入最高的公司。
像这样:
FILENAME = "foo.txt"
def company_with_max_revenue(filename):
data = []
with open(filename) as f:
for row in f:
company, *revenues = row.split(";")
sr = sum(map(int, revenues))
data.append((sr, company[1:]))
return sorted(data)[-1]
revenue, company = company_with_max_revenue(FILENAME)
print(f"The biggest revenue: {company} The revenue is {revenue}")
输出:
The biggest revenue: Company 3 The revenue is 34000