我可以使用变量字符串来引用列表吗?

Los*_*oul 4 python arrays

我有一份字典中的股票价格清单和价值清单.我想通过列表来获取每天股票的价值,但是当我使用变量访问数据时,我无法解析列表中的位置.

这是一个例子:

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].


Rus*_*ove 5

将每日值移动到字典中:

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)