擅长:python、mysql、java
<p>我还是不完全清楚你想做什么。但是我猜输出应该是这样的:如果<code>abc</code>中的前一个元素更大或不存在,那么赋值0,否则将数字增加1。你知道吗</p>
<p>至少,这段代码是这样做的:</p>
<pre><code>abc= [150,110,120,0,0,160,120,-200,140,150]
res = [0]
for i in [[1, 0][u - v < 0] for u, v in zip(abc[1:], abc[:-1])]:
if i == 0:
count = 0
else:
count += 1
res.append(count)
print(res)
</code></pre>
<p>说明:
<code>[[1, 0][u - v < 0] for u, v in zip(abc[1:], abc[:-1])]</code>是一个列表理解,它根据与上一个元素的比较来分配<code>0</code>或<code>1</code>。这不包括第一个元素,其得分设置为<code>0</code>。
然后<code>for loop</code>忽略<code>0</code>并用<code>1,2,3...</code>替换像<code>1,1,1...</code>这样的序列</p>