<p>如果你有一份获奖名单,比如:</p>
<pre><code>>>> winners
['Boston Americans', 'World Series Not Played in 1904', 'New York', 'Chicago', 'Chicago', 'Chicago', 'Pittsburgh', 'Philadelphia', 'Philadelphia', 'Boston', 'Philadelphia', 'Boston', 'Boston', 'Boston']
</code></pre>
<p>您可以使用<code>enumerate</code>将这些与数字关联起来:</p>
^{pr2}$
<p>从这里你可以做一个dict,或者一个字符串列表,或者别的什么:</p>
<pre><code>>>> dict(enumerate(winners, 1903))
{1903: 'Boston Americans', 1904: 'World Series Not Played in 1904', 1905: 'New York', 1906: 'Chicago', 1907: 'Chicago', 1908: 'Chicago', 1909: 'Pittsburgh', 1910: 'Philadelphia', 1911: 'Philadelphia', 1912: 'Boston', 1913: 'Philadelphia', 1914: 'Boston', 1915: 'Boston', 1916: 'Boston'}
>>> ['{}:{}'.format(winner, year) for year, winner in enumerate(winners, 1903)]
['Boston Americans:1903', 'World Series Not Played in 1904:1904', 'New York:1905', 'Chicago:1906', 'Chicago:1907', 'Chicago:1908', 'Pittsburgh:1909', 'Philadelphia:1910', 'Philadelphia:1911', 'Boston:1912', 'Philadelphia:1913', 'Boston:1914', 'Boston:1915', 'Boston:1916']
</code></pre>
<p>你可以很容易地去掉“inyyyy”部分,但最好的方法取决于短语的变化程度。在</p>
<p>例如,如果您知道它是<code>in YYYY</code>,那么您可以使用类似于</p>
<pre><code>def strip_year(winner, year):
in_year = ' in {}'.format(year)
if winner.endswith(in_year):
winner = winner[:-len(in_year)]
return winner
</code></pre>
<p>然后使用字典理解(python>;=2.7):</p>
<pre><code>>>> {year: strip_year(winner, year) for year, winner in enumerate(winners, 1903)}
{1903: 'Boston Americans', 1904: 'World Series Not Played', 1905: 'New York', 1906: 'Chicago', 1907: 'Chicago', 1908: 'Chicago', 1909: 'Pittsburgh', 1910: 'Philadelphia', 1911: 'Philadelphia', 1912: 'Boston', 1913: 'Philadelphia', 1914: 'Boston', 1915: 'Boston', 1916: 'Boston'}
</code></pre>