擅长:python、mysql、java
<p>这是一种方法。你知道吗</p>
<pre><code>frontier = [{ 'state': (2, 5, 4, 3, 0, 1), 'path': [ 'PULL' ] },
{ 'state': (2, 4, 5, 0, 3, 1), 'path': [ 'SWAP','PULL' ] },
{ 'state': (2, 5, 4, 0, 1, 3), 'path': [ 'SWAP' ] },
{ 'state': (2, 0, 5, 4, 3, 1), 'path': [ 'PUSH', 'PUSH' ] }]
d = {'PUSH': 5, 'PULL': 6, 'SWAP': 8, 'FLIP': 2}
res = [sum(map(d.get, item['path'])) for item in frontier]
print(res)
[6, 14, 8, 10]
</code></pre>
<p><strong>解释</strong></p>
<ul>
<li>创建将操作映射到值的字典。你知道吗</li>
<li>使用<code>sum</code>和<code>map</code>延迟计算字典中所有操作的总和。你知道吗</li>
<li>使用列表理解循环浏览列表中的每一本词典。你知道吗</li>
</ul>