擅长:python、mysql、java
<p>假设:</p>
<ul>
<li>您打算让<code>ch1a.twist</code>等成为字符串文字,但忘记了引号</li>
<li><code>channels</code>只包含一个列表</li>
<li>频道的所有版本都在列表中相邻</li>
<li>版本是按字母顺序排列的(所以说,“ch1b”永远不会排在“ch1a”之前)</li>
</ul>
<p>然后可以使用<code>groupby</code>按通道名称对项目进行分组,并使用<code>next</code>提取每个通道的第一个匹配项</p>
<pre><code>import itertools
def channel_name(channel):
prefix, suffix = channel.split(".")
return prefix[:-1]
channels = [["ch1a.twist", "ch1b.twist", "ch1c.twist", "ch2a.bop", "ch2b.bop", "ch3c.pull"]]
result = [next(v) for k,v in itertools.groupby(channels[0], key=channel_name)]
print(result)
</code></pre>
<p>结果:</p>
<pre><code>['ch1a.twist', 'ch2a.bop', 'ch3c.pull']
</code></pre>