python--列表推导式
price_array=['30.14','29.58','26.36','32.56','32.82']
date_array = []
date_base = 20170118
date_array=[str(date_base + ind) for ind , _ in enumerate(price_array)]
date_array
from collections import namedtuple
#可命名元祖
price_array=['30.14','29.58','26.36','32.56','32.82']
date_array = []
date_base = 20170118
date_array=[str(date_base + ind) for ind , _ in enumerate(price_array)]
date_array
stock_namedtuple=namedtuple('stock',('date','price'))
stock_namedtuple_list=[stock_namedtuple(date,price) for date,price in zip(date_array,price_array)]
stock_namedtuple_list
# 字典推导式
stock_dict={date :price for date,price in zip(date_array,price_array)}
# 有序字典
stock_dict1=OrderedDict((date,price) for date,price in zip(date_array,price_array))
stock_dict,stock_dict1
# dict sorted 返回的结果是list
def find_second_max(dict_array):
stock_second_price=sorted(zip(dict_array.values(),dict_array.keys()))
print (type(stock_second_price))
return stock_second_price[-2]
stock_dict,'\n\n',find_second_max(stock_dict)
# lambda
find_second_max_lambda = lambda stock_array : sorted( zip(stock_array.values(),stock_array.keys()))[-2]
print (find_second_max_lambda(stock_dict))
# reduce
from functools import reduce
price_float_array = [float(stock_price) for stock_price in stock_dict.values()]
pp_array=[(price1,price2) for price1,price2 in zip(price_float_array[:-1],price_float_array[1:])]
#change_array=list(map(lambda pp:reduce(lambda a,b:round((b-a)/a,3),pp),pp_array))
change_array=list(map(lambda pp: reduce(lambda a, b: round((b - a) / a, 3), pp), pp_array))
change_array.insert(0,0)
print (change_array)
浙公网安备 33010602011771号