<p>您可能需要的是<a href="http://docs.python.org/tutorial/datastructures.html#dictionaries" rel="nofollow">dictionary</a>结构,而不是列表:</p>
<pre><code>>>> prices = dict()
>>> prices['2011-01-02'] = {'Open':20.00, 'High':30.00, 'Low':10.00, 'Close':21.00, 'Volume':14.00, 'Adj Clos':120}
>>> prices['2010-11-09'] = {'Open':22.00, 'High':50.00, 'Low':20.00, 'Close':42.00, 'Volume':10.00, 'Adj Clos':666}
>>> prices
{'2011-01-02': {'Volume': 14.0, 'Adj Clos': 120, 'High': 30.0, 'Low': 10.0, 'Close': 21.0, 'Open': 20.0}, '2010-11-09': {'Volume': 10.0, 'Adj Clos': 666, 'High': 50.0, 'Low': 20.0, 'Close': 42.0, 'Open': 22.0}}
</code></pre>
<p>在这里,我在主“prices”字典的每个条目中嵌套了一个字典。字典的第一级将日期作为其键,并映射到包含该日期的价格信息的字典。在</p>
^{pr2}$
<p>字典的第二级使用属性名作为键,并映射到属性值本身。在</p>
<pre><code>>>> prices['2010-11-09']['Open']
22.0
>>> prices['2010-11-09']['Close']
42.0
</code></pre>
<p>似乎对于您所指的<code>get_historical_prices</code>函数,每天都以<code>[Date, Open, High, Low, Close, Volume, Adj_Clos]</code>的形式输出。如果你想为这些词条的列表建立一个字典,你需要做三件事:</p>
<p>首先,您需要为每个条目编制索引,以便将<code>Date</code>与其他元素分开,因为这是您将用来索引dict的第一个维度的内容。您可以使用<code>entry[0]</code>获得第一个元素,并使用<code>entry[1:]</code>获取其余元素。在</p>
<pre><code>>>> entry = ['2011-01-02', 20.00, 30.00, 10.00, 21.00, 14.00, 120]
>>> date = entry[0]
>>> date
'2011-01-02'
>>> values = entry[1:]
>>> values
[20.0, 30.0, 10.0, 21.0, 14.0, 120]
</code></pre>
<p>其次,由于您希望将其他每个元素与一个特定的键相关联,因此应该按照数据元素的顺序列出这些键的列表。使用<code>zip()</code>函数可以组合两个列表<code>p</code>和{<cd8>},从每个列表中取第i个元素并生成{<cd9>}。通过这种方式,您可以创建(键、值)对的列表,并将其传递给字典构造函数:</p>
<pre><code>>>> keys = ['Open', 'High', 'Low', 'Close', 'Volume', 'Adj Clos']
>>> pairs = zip(keys, entry[1:])
>>> pairs
[('Open', 20.0), ('High', 30.0), ('Low', 10.0), ('Close', 21.0), ('Volume', 14.0), ('Adj Clos', 120)]
</code></pre>
<p>最后,您需要构建字典,并将其索引到整个历史记录中相应的日期:</p>
<pre><code>>>> stockdict = dict(pairs)
>>> stockdict
{'Volume': 14.0, 'Adj Clos': 120, 'High': 30.0, 'Low': 10.0, 'Close': 21.0, 'Open': 20.0}
>>> histodict = dict()
>>> histodict[date] = stockdict
</code></pre>
<p>您可以通过两种方法迭代嵌套的<code>history</code>列表来构造字典,第一种方法是使用传统的<code>for</code>循环:</p>
<pre><code>keys = ['Open', 'High', 'Low', 'Close', 'Volume', 'Adj Clos']
histodict = dict()
for item in history:
date = item[0]
values = item[1:]
histodict[date] = dict(zip(keys, values))
</code></pre>
<p>或者,如果您想尝试更高级的Python技术,请尝试嵌套dict <a href="http://www.python.org/dev/peps/pep-0289/" rel="nofollow">generator statement</a>:</p>
<pre><code>keys = ['Open', 'High', 'Low', 'Close', 'Volume', 'Adj Clos']
histodict = dict((item[0], dict(zip(keys, item[1:]))) for item in history)
</code></pre>
<p>如果你不熟悉编程的话,最后一个是很糟糕的,但是我鼓励你阅读这个链接;记住,当用Python编程时,Google是你的朋友。我希望我在这里给了你足够的关键词和想法来开始学习,剩下的就交给你了。在</p>