擅长:python、mysql、java
<p>我可能没有<em>完整的</em>图片,但在你的问题中,我看不到任何需要<em>词典列表的东西。事实上,您拥有的结构允许一个项具有多个<em>ID:</p>
<pre class="lang-py prettyprint-override"><code>myList = [
{ 'id': 1, 'name': 'cream' },
{ 'id': 2, 'name': 'sugar' }, # duplicates
{ 'id': 999, 'name': 'sugar' }, # here.
{ 'id': 3, 'name': 'mint' }
]
</code></pre>
<p>如果您只需要将字符串映射到标识符,那么<em>单个</em>字典可以做到这一点:</p>
<pre class="lang-py prettyprint-override"><code>lookup = {'cream': 1, 'sugar': 2, 'mint': 3}
</code></pre>
<p>然后您可以使用<code>lookup['cream']</code>来进行翻译</p>
<hr/>
<p>如果您<em>确实</em>需要您指定的特定数据结构,您可以使用如下内容:</p>
<pre class="lang-py prettyprint-override"><code>[aDict['id'] for aDict in myList if aDict['name'] == 'cream']
</code></pre>
<p>要获取匹配项列表,您需要决定如果存在多个匹配项,应执行哪些操作,例如仅获取第一个匹配项:</p>
<pre class="lang-py prettyprint-override"><code>def getIdFor(haystack, needle):
matches = [aDict['id'] for aDict in haystack if aDict['name'] == needle]
if len(matches) == 0: return None
return matches[0]
</code></pre>