擅长:python、mysql、java
<p>您的代码有一些问题:</p>
<ul>
<li>不需要<code>n</code>参数,您可以使用<code>len(list)</code>获得列表的大小</li>
<li>您不应该使用<code>list</code>作为变量名,因为它隐藏了内置的<code>list</code>函数</li>
<li>在<code>for x in range (n-j)</code>中,假设每个子列表的元素数与父列表的元素数相同</li>
<li>如果数字在一行中出现的次数超过<code>j</code>,则函数也会返回<code>True</code></li>
<li>你用三个循环而不是两个循环做了很多双重工作</li>
</ul>
<p>您可以解决这个问题,还可以为要重复的数字添加参数,如其他答案所示。但是,仅使用循环和条件,生成的代码将非常笨拙。你知道吗</p>
<p>相反,您可以使用<code>any</code>和<a href="https://docs.python.org/3/library/itertools.html#itertools.groupby" rel="nofollow">^{<cd9>}</a>创建所描述的函数。<code>groupby</code>组等于数字,那么您只需检查这些组的<code>len</code>,看看<code>any</code>是否足够长,以及它是否是子列表<code>any</code>的正确数字。你知道吗</p>
<pre><code>def alignment(lst, num, count):
return any(any(n == num and len(list(g)) == count
for n, g in itertools.groupby(l))
for l in lst)
</code></pre>
<p>如果<code>num</code>在任何子列表中连续出现<code>count</code>次,则返回<code>True</code>。你知道吗</p>