我是python的新手,还没有读过很多代码来验证哪些样式被认为是'pythonic'。
当我开始编码时,我一直在使用这种模式。
listThatMightBeEmpty = []
for items in listThatMightBeEmpty:
print "this may or may not print but the loop won't cause any errors"
我认为首先检查列表是否为空是多余的 - 如果列表为空,我可以让for-in循环不执行任何操作。但我想确保在任何情况下都没有任何问题,包括使用旧版本的python,包括在字典上使用for-in循环,使用enumerate()或iteritems(),或使用列表推导等。< / p>
答案 0 :(得分:2)
是的,你是对的。这里没有陷阱。您可以在空列表中使用它。
答案 1 :(得分:1)
要检查列表是否为空,您可以执行以下操作:
>>> x = []
>>> if not x:
# do something
如果列表为空,# do something
将运行,您可以在那里处理执行。
但是,您的方法没有任何问题。
答案 2 :(得分:1)
是的,它是多余的(除非您想为空输入执行特殊操作)。
通常,for
循环和返回另一个可以迭代的东西的函数如果输入零项,则不会给出任何“令人惊讶的行为”。这包括enumerate()
,iteritems()
,甚至切片([][1:] == []
)。
>>> list( enumerate([]) )
[]
>>> list( {}.iteritems() )
[]
>>> [][1:]
[]
>>> [x*x for x in []]
[]