<pre><code>s = "lallalaiial"
subs = []
for g in range(len(s)):
for o in range(g, len(s)):
substring = s[g:o+1]
passable = True
for v in range(len(substring)):
if(substring[v] == "i"):
passable = False
if(passable):
subs.append(substring)
print(subs)
</code></pre>
<p>我能为for循环做一个列表理解吗?只有在最后一个for循环检查了列表后,才应向列表中添加新值。我不想删除最后一个for循环-即使没有它也可以获得相同的结果。在</p>
<p>既然你想保持最内部的循环,你可以这样做:</p>
<pre><code>subs = [ s[g:o+1] for g in range(len(s)) for o in range(g,len(s)) if all( [s[g:o+1][v]!="i" for v in range(len(s[g:o+1]))] ) ]
</code></pre>