我有一份字典中的股票价格清单和价值清单.我想通过列表来获取每天股票的价值,但是当我使用变量访问数据时,我无法解析列表中的位置.
这是一个例子:
goog = [12,132,124,234,234]
msft = [432,23,234,54,23]
num_days = 5
stocks_i_own = {'goog':50, 'msft':50}
for days in range(0,num_days):
for stock in stocks_i_own:
print days, stock, stocks_i_own[stock]
print stock[days] #prints just 'g' not the value on day0
print 'vaue on ', days, ' is ', stock[days] * stocks_i_own[stock]
Run Code Online (Sandbox Code Playgroud)
问题是当我stock[days]用来获取数据时.我知道库存有正确的值('goog'或'msft'),天数有正确的值(范围为0-4),但是当它们一起使用时,我不会从列表中获取数据,而是获取位置关于这个词本身.它是有道理的,因为像:
name = 'google'
name[0]
Run Code Online (Sandbox Code Playgroud)
会返回g(它在我的情况下做)但是有没有办法让python不要看到我提供它作为一个字符串而是引用列表?
Dan*_* Li 11
为什么不将当前列表存储为字典呢?
代替:
goog = [12, 132, 124, 234, 234]
msft = [432, 23, 234, 54, 23]
Run Code Online (Sandbox Code Playgroud)
使用:
stock_vals = { 'goog': [12, 132, 124, 234, 234], 'msft': [432, 23, 234, 54, 23] }
Run Code Online (Sandbox Code Playgroud)
现在您可以使用以下方法检索它
stock_vals[stock_name][day_index]
Run Code Online (Sandbox Code Playgroud)
其中stock_name是元素,{'goog', 'msft', ...}而day_index是元素[0, 6].
将每日值移动到字典中:
stock_values = { 'goog': [12,132,124,234,234],
'msft': [432,23,234,54,23] }
Run Code Online (Sandbox Code Playgroud)
然后像这样查看它们:
stock_values[ stock ][ days ]
Run Code Online (Sandbox Code Playgroud)