擅长:python、mysql、java
<p>在返回<code>AttributeError</code>的代码中,这是因为如果i<strong>是</strong>none,它将继续执行<code>or</code>语句的第二部分并检查<code>i.isupper()</code>,但是<code>None</code>没有<code>isupper()</code>方法,因此会出现错误。在</p>
<p>我可以建议另一种方法吗?在</p>
<pre><code>items = [None,'foo',None,'FOO',None,'bar']
def splitItems(items, test):
trueItems = []
falseItems = []
for item in items:
if test(item):
trueItems.append(item)
else:
falseItems.append(item)
return trueItems, falseItems
trueItems, falseItems = splitItems(items, lambda i:i is None or i.isupper())
print "uppercase or None:", trueItems
print "lowercase:", falseItems
# uppercase or None: [None, None, 'FOO', None]
# lowercase: ['foo', 'bar']
</code></pre>