擅长:python、mysql、java
<p>请注意,在他的(相当漂亮的)解决方案中使用的<code>set</code>@Sait是一个由唯一项组成的无序数据结构:</p>
<ul>
<li><strong>无序的</strong>:意味着您不能安全地假设键的顺序仍然是集合中的<code>'A', 'D', 'Y'</code>。你知道吗</li>
<li><strong>唯一的</strong>:这意味着如果您有重复的键,比如<code>'A', 'D', 'Y', 'A'</code>,那么只有<code>'A', 'D', 'Y'</code>会出现在您的输出中,因为每个项在一个集合中只能出现一次。你知道吗</li>
</ul>
<p>也就是说,使用字典而不是元组列表进行查找可以为自己省去一些麻烦。你知道吗</p>
<pre><code>>>> list1 = [('A',0.75),('D',0.49),('Y',0.36),('D',0.49)]
>>> maindict = dict({'A':10, 'B':20, 'C':30, 'D':40, 'E':50, 'Y':250, 'Z':260})
>>> keys, values = zip(*list1) # unzip the tuples in list one into two separate lists
>>> newlist = [(key, maindict[key]) for key in keys]
>>> print(newlist)
[('A', 10), ('D', 40), ('Y', 250), ('D', 40)]
</code></pre>
<p>此解决方案保证保留输入的顺序,并且可以处理重复的键。通过使用字典,您不需要遍历整个<code>mainlist</code>来查找密钥。您可以对键进行迭代,并通过对每个键进行一次字典查找(这相当快)来获取它们的值。你知道吗</p>