擅长:python、mysql、java
<p>Python由于没有严格遵守您的问题而冒着被否决的风险,与许多其他更传统的语言相比,Python具有更好的(简单)循环功能。(我也意识到,根据今早有非常相似的问题,这可能是家庭作业)。显然,了解<code>while</code>循环是如何工作的有一定价值的,但是在Python中这样做会使其他功能变得模糊。例如,使用单一列表理解的示例:</p>
<pre><code>def splitList2(myList, option):
return [v for v in myList if (1-2*option)*v > 0]
print(splitList2([1,2,3,-10,4,5,6], 0))
print(splitList2([1,2,3,-10,4,5,6], 1))
</code></pre>
<p>输出:</p>
^{pr2}$
<p>理解中条件的语法看起来很复杂,因为<code>option</code>到effect的映射很差。在Python中,与许多其他动态和函数式语言一样,可以直接传入比较函数:</p>
<pre><code>def splitList3(myList, condition):
return [v for v in myList if condition(v)]
print(splitList3([1,2,3,-10,4,5,6], lambda v: v>0))
print(splitList3([1,2,3,-10,4,5,6], lambda v: v<0))
print(splitList3([1,2,3,-10,4,5,6], lambda v: v%2==0))
[1, 2, 3, 4, 5, 6]
[-10]
[2, -10, 4, 6]
>>>
</code></pre>
<p>请注意这是多么灵活:将代码调整为完全不同的过滤条件变得很简单。在</p>