我正在编写一些与我编写的代码有关的问题。我试图在银行余额最大的文件中找到客户。文本文件的示例是:
12345,约翰,DOE,300.00,1998-01-30
23456,简,DOE,1200.50,1998-02-20
在这种情况下,Jane Doe拥有最大的余额,我想打印她的整个文件/行。我怎么能这样做?这就是我到目前为止所拥有的:
def get_best_customer(customer_file):
customer_file.seek(0)
richest = 0
customer_info = []
for line in customer_file:
line = customer_file.readline().strip()
balance = line.split(',')
if balance > richest:
customer_info.append(balance)
return customer_info
感谢您的帮助!
答案 0 :(得分:3)
您可以定义一个“键”功能,该功能需要一行并返回货币字段。然后max
可以直接使用
def get_best_customer(customer_file):
customer_file.seek(0)
def get_money(line):
return float(line.split(',')[3])
print(max(customer_file, key=get_money))
答案 1 :(得分:1)
line.split(',')
返回列表字符串 - > ['23456', 'Jane', 'Doe', '1200.50', '1998-02-20']
。然后,您需要转换您感兴趣的字段:
line = customer_file.readline().strip()
data = line.split(',')
balance = float(data[3])
这应该让你去。您仍然需要设置richest
,进行比较,可能只需将customer_info
设置为data
,而不是附加到它。
答案 2 :(得分:0)
Gnibbler的回答可以这样写,我想:
def get_best_customer(customer_file):
with open(customer_file, "r") as f:
return max(f, key=(lambda l: float(l.strip().split(",")[3])))