回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有两个不同的清单:</p>
<pre><code>l1 = ['a','b','a','e','b','c','a','d']
l2 = ['t1','t2','t3','t4','t5','t6','t7','t8']
</code></pre>
<p><code>l1</code>和<code>l2</code>的长度总是相同的。它们实际上是逻辑映射<code>l1</code>中的每个项对应于<code>l2</code>中的一个值。你知道吗</p>
<p>我想在<code>l1</code>中识别不同的元素。我是用<code>set</code>和<code>list comprehension</code>做的,如下所示:</p>
<pre><code>used = set()
distl1 = [x for x in l1 if x not in used and (used.add(x) or True)]
</code></pre>
<p>在这里,输出将是:</p>
<pre><code>distl1 = ['a','b','e','c','d']
</code></pre>
<p>它只不过是每个不同元素的第一次出现。你知道吗</p>
<p>现在,我该如何构建一个列表<code>distl2</code>,以便将输出作为<code>l2</code>中与第一次出现的值相对应的值,即<code>distl1</code>?你知道吗</p>
<pre><code>distl2 = ['t1','t2','t4','t6','t8']
</code></pre>