回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个嵌套的数字列表。就像这个:</p>
<pre><code>[[1,2,3],[3,2,1],[3,1,2],[2,3,1]]
</code></pre>
<p>现在,我要计算大于它的前一个元素和前一个元素的数,它的两边必须有一个元素。输出应该是这样的(在列表中):</p>
<pre><code>[0,0,0,1]
</code></pre>
<p>输出列表的第一个元素是零,因为在第一个嵌套列表中,它的第一个元素没有其他前一个元素,只有2个在它的前面。对于第二个元素(仍然在第一个嵌套列表中),它有1作为前一个元素,3作为前一个元素,但是输出为零,因为它需要大于前一个元素和前一个元素。第三个元素也是无效的,因为它没有前一个元素,只有前一个元素。除最后一个嵌套列表外,其他嵌套列表也是如此。在上一个嵌套列表中,2和1已经无效,但是3是,所以现在我们需要检查它是否高于它的两个元素。因为3更高,所以最后一个嵌套列表的值是+1。你知道吗</p>
<p>另一个例子:</p>
<pre><code>[[1,2,1,3,1],[2,2,2],[2,3,4,3,4,2,3,1]]
</code></pre>
<p>输出应为:</p>
<pre><code>[2,0,3]
</code></pre>
<p>输出列表的第一个元素是2,因为在第一个嵌套列表(第一个和最后一个元素已经无效)中,2同时包含这两个元素,并且它也高于这两个元素。然后,我们移到1,它也有两个元素,但它小于这两个元素,所以它是无效的。3是有效的,因为它有两个元素,而且它也更高。所以我们计算+2,因为有2个数字是有效的。第二个嵌套列表无效,因为包含这两个元素的数字不能等于其中任何一个,它需要更高,并且第一个和最后一个元素已经存在无效的.In最后一个嵌套列表,它的第一个和最后一个元素已经无效了,所以我们从它的第二个开始,3,3有两个元素,但它只比前一个元素高,但比前一个元素小。接下来,4有两个元素,它也更高,所以它被计数。下一步,3有两个元素,但它比它们都小,所以不计算。接下来,4同时包含了这两个元素,并且它也高于它的元素。接下来,2有两个元素,但它比它的元素小,所以不计算。接下来,3同时包含这两个元素,并且它也高于这两个元素,所以它也是count。这使得输出列表中的最后一个元素计数为+3。你知道吗</p>
<p>如果解释太长/太长,我很抱歉,但是在python3中有什么方法可以做到这一点吗?你知道吗</p>
<p>编辑:</p>
<p>到目前为止,我已经试过了:</p>
<pre><code>listy = [[1,2,3],[3,2,1],[3,1,2],[2,3,1]]
list_hold = []
for x in listy:
for y in x:
if y>y+1 and y>y-1:
list_hold.append(x)
print(list_hold)
</code></pre>
<p>但它只返回一个空列表。你知道吗</p>