<p>将数据存储在一个dict的dict中。外文记载了季节,内文记载了本部分的零件号和名称:</p>
<pre><code>import random
# see below for a user input safe variant
def get_random_title_of_radnom_season(data):
season = random.choice(list(data)) # replace with int numeric user input
nr = random.choice(list(data)) # replace with int numeric user input
title = data.get(season, {0:"does not exists"}.get(nr,0)
return f"Season {season} title {nr} was {title}"
# first index is the season, its value is a dict with partnr, title
d = {1 : { a: f"Title {a}" for a in range(1,15) },
2 : { a: f"Title {a}" for a in range(1,10) },
3 : { a: f"Title {a}" for a in range(1,4) } }
print(get_random_title_of_radnom_season(d))
</code></pre>
<p>以下是扩展dict理解后的数据:</p>
<pre><code>{1: {1: 'Title 1', 2: 'Title 2', 3: 'Title 3',
4: 'Title 4', 5: 'Title 5', 6: 'Title 6',
7: 'Title 7', 8: 'Title 8', 9: 'Title 9',
10: 'Title 10', 11: 'Title 11', 12: 'Title 12',
13: 'Title 13', 14: 'Title 14'},
2: {1: 'Title 1', 2: 'Title 2', 3: 'Title 3',
4: 'Title 4', 5: 'Title 5', 6: 'Title 6',
7: 'Title 7', 8: 'Title 8', 9: 'Title 9'},
3: {1: 'Title 1', 2: 'Title 2', 3: 'Title 3'}}
</code></pre>
<p>多输出:</p>
<pre><code>Season 3 title 3 was Title 3
Season 3 title 1 was Title 1
Season 3 title 2 was Title 2
Season 2 title 4 was Title 4
Season 1 title 9 was Title 9
</code></pre>
<p>如果你不喜欢“裸体”字典,你也可以考虑使用<a href="https://docs.python.org/2/library/collections.html#collections.namedtuple" rel="nofollow noreferrer">named tuples</a>。你知道吗</p>
<hr/>
<p>为了让它成为用户输入的证明,而不是使用dict中的随机数:</p>
<pre><code>def get_user_title_of_radnom_season(data, season, nr):
title = data.get(season, {}).get(nr,False)
return f"Season {season} title {nr} was {title}" if title else "Does not exist"
print(get_user_title_of_radnom_season(d, 99, 99))
</code></pre>
<p>将为任何不合适的键打印<code>"Does not exist"</code></p>