<p>我想我解决了这个问题。请看下面的代码。你知道吗</p>
<pre><code>#!/usr/bin/env python3
# -*- coding: utf-8 -*-
timeSum = [0,0,0,1,1,2,3,3,3,2,3]
maxTime = [i for i, j in enumerate(timeSum) if j == max(timeSum)]
is_range = []
not_range = []
for i in range(len(maxTime)):
try:
if maxTime[i + 1] - maxTime[i] == 1:
is_range.append(f"{maxTime[i]}:{maxTime[i + 1]}")
except:
if str(maxTime[i]) not in "".join(is_range):
not_range.append(maxTime[i])
def f(arg):
for i in range(len(arg)):
try:
split1 = arg[i].split(":")
split2 = arg[i + 1].split(":")
if split1[-1] == split2[0]:
arg[i] = arg[i].replace(split1[-1], split2[-1])
arg.pop(i + 1)
except:
pass
for i in range(len(arg)):
try:
split1 = arg[i].split(":")
split2 = arg[i + 1].split(":")
if split1[-1] == split2[0]:
return f(arg)
else:
return arg
except:
return arg
new_list = f(is_range)
new_list.extend(not_range)
print(new_list)
</code></pre>
<p><strong>输出1:</strong></p>
<pre><code>['6:8', 10]
</code></pre>
<p>如果列表如下所示</p>
<pre><code>timeSum = [0,0,0,1,1,2,3,3,3,2,3,3,3]
</code></pre>
<p><strong>输出2:</strong></p>
<pre><code>['6:8', '10:12']
</code></pre>
<p>如果列表如下所示</p>
<pre><code>timeSum = [0,0,0,1,1,2,3,3,3,3,2,3,3,3,3]
</code></pre>
<p>输出如下:</p>
<p><strong>输出3:</strong></p>
<pre><code>['6:9', '11:14']
</code></pre>