我正在使用CSV模块将Yahoo的股票报价引入一个命名元组。
YahooQuote = collections.namedtuple(
'YahooQuote', 'date, open, high, low, close, volume, adj_close')
def prices(ticker):
# make url given ticker
csvfile = urllib2.urlopen(url)
return map(YahooQuote._make, csv.reader(csvfile))
雅虎的股票报价csv格式不包括股票代码。如果我将我的命名元组类调整为包含ticker
属性,我将如何修改map
表达式以使其为每个命名的元组实例添加ticker
参数的值?
答案 0 :(得分:2)
我遗传上无法理解带有map()的代码,所以我只是将“map(f,i)”转换为“[f(x)for x in i]”所以我不喜欢不得不:
return [YahooQuote._make(x) for x in csv.reader(csvfile)]
然后在csv.reader返回的列表末尾添加自动收报机是一件简单的事情:
YahooQuote = collections.namedtuple(
'YahooQuote', 'date, open, high, low, close, volume, adj_close, ticker')
def prices(ticker):
# make url given ticker
ticker_list = [ticker]
csvfile = urllib2.urlopen(url)
return [YahooQuote._make(x + ticker_list) for x in csv.reader(csvfile)]