擅长:python、mysql、java
<p>假设嵌套列表不重要,例如<code>l1</code>可以更改为<code>["a", "b", "c", d"]</code>,您可以在此处使用<a href="https://docs.python.org/3/library/itertools.html" rel="nofollow noreferrer">^{<cd3>}</a></p>
<p>首先用<code>itertools.chain</code>展平<code>l1</code></p>
<pre><code>import itertools
l2 = itertools.chain(*l1)
</code></pre>
<p>(或<code>l2 = itertools.chain.from_iterable(l1)</code>)</p>
<p>然后遍历两个元素的所有组合</p>
<pre><code>for i, j in itertools.combinations(l2, 2):
if i in dict1 and j in dict1:
dict1[f"{i}+{j}"] = dict1[i] + dict1[j]
</code></pre>
<p>全部</p>
<pre class="lang-py prettyprint-override"><code>import itertools
l1 = [['a','b'], ['c','d']]
dict1 = {'a':10, 'e':20, 'c':30, 'b':40}
for i, j in itertools.combinations(itertools.chain(*l1), 2):
if i in dict1 and j in dict1:
dict1[f"{i}+{j}"] = dict1[i] + dict1[j]
</code></pre>
<p><code>dict1</code>现在将相等</p>
<pre><code>{'a': 10, 'e': 20, 'c': 30, 'b': 40, 'a+b': 50, 'a+c': 40, 'b+c': 70}
</code></pre>