擅长:python、mysql、java
<p>这里有一个行程序,它可以满足您的需要;我将您的首选项列表转换为<a href="https://docs.python.org/3/library/stdtypes.html#mapping-types-dict" rel="nofollow noreferrer">a dictionary</a>,因为这是一个<a href="https://docs.python.org/3/library/stdtypes.html#mapping-types-dict" rel="nofollow noreferrer">much more suitable data structure when you are storing key/value pairs</a>:</p>
<pre><code>sandwiches = [["bacon", "banana"], ["ham", "salami", "cheese"]]
prefs = {"bacon": 5, "ham": -2, "salami": 1}
scores = [ [ ", ".join(i), sum( prefs[j] for j in i if j in prefs) ] for i in sandwiches ]
print(scores)
</code></pre>
<p>输出:</p>
^{pr2}$
<p>该解决方案使用<a href="https://docs.python.org/3/library/functions.html#sum" rel="nofollow noreferrer">^{<cd1>}</a>将三明治成分的值相加,根据成分是否出现在<code>prefs</code>中进行过滤。在</p>
<p>您可以更改输出格式以删除成分列表,并通过修改<code>[ ", ".join(i), sum( prefs[j] for j in i if j in prefs) ]</code>部分输出分数。我本以为知道哪个三明治得分很重要,但谁知道呢!在</p>