python_排序函数_本文文件内容排序(python对文件排序)

网友投稿 272 2022-08-30


python_排序函数_本文文件内容排序(python对文件排序)

文章目录

​​problem:​​​​code:​​​​the file:"info_stocks.txt"​​​​the result:​​

problem:

本文文件“info_stocks.txt”中每一行的name对应股票名称,shares对应多少股,price对应该只股票的单价。 (a) 请计算每只股票的总价,并按总价从大到小进行排序(程序中要求含lambda函数) ,将所有股票的名称、单价、总价依次打印输出。 (b) 要求使用Python内置函数filter过滤出单价大于80的股票有哪些? 并将符合条件的股票名称、单价、总价打印输出。

code:

f = open(path_string_fix+"info_stocks.txt", "r")ls = []for line in f: ls.append(line.strip("\n").split(","))f.close()""" test the read result: """# print(ls)""" sum the price: """def calculate_index(list_element): shares = int(list_element[1].split(":")[1]) price = float(list_element[2].split(":")[1]) sum_price = shares*price return sum_price# 排序用例1ls.sort(key=lambda list_element: calculate_index(list_element), reverse=True)def print_iterable(iterable): for list_element in iterable: for i in [0, 2]: """ to make the print format tidily each column,we specify a width for the middle column: """ print(list_element[i].strip().ljust(20), end=" ") print("sum_price="+str(calculate_index(list_element)))# print(ls)def print_sort_result(ls): print("\nthe sorted result:") print_iterable(ls) #filter用例filter_ls=filter(lambda list:float(list[2].split(":")[1])>80,ls)def print_filter_result(filter_ls): print("\nthe filtered result:") print_iterable(filter_ls) # for list_element in filter_ls: # for i in [0,2]: # print(list_element[i].strip(),end=" ") # print("sum_price=%s"%calculate_index(list_element)) print_sort_result(ls)print_filter_result(filter_ls)

the file:“info_stocks.txt”

'name': 'IBM', 'shares': 100, 'price': 91.1'name': 'AAPL', 'shares': 50, 'price': 543.22'name': 'FB', 'shares': 200, 'price': 21.09'name': 'HPQ', 'shares': 35, 'price': 31.75'name': 'YHOO', 'shares': 45, 'price': 16.35'name': 'ACME', 'shares': 75, 'price': 115.65

the result:

the sorted result:'name': 'AAPL' 'price': 543.22 sum_price=27161.0'name': 'IBM' 'price': 91.1 sum_price=9110.0'name': 'ACME' 'price': 115.65 sum_price=8673.75'name': 'FB' 'price': 21.09 sum_price=4218.0'name': 'HPQ' 'price': 31.75 sum_price=1111.25'name': 'YHOO' 'price': 16.35 sum_price=735.7500000000001the filtered result:'name': 'AAPL' 'price': 543.22 sum_price=27161.0'name': 'IBM' 'price': 91.1 sum_price=9110.0'name': 'ACME' 'price': 115.65 sum_price=8673.75


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python_计数排序counting_sort()
下一篇:冒泡排序完整代码讲解(冒泡排序的程序代码)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~