【发布时间】:2011-04-20 12:44:02
【问题描述】:
我是 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(),或使用列表推导等。
【问题讨论】:
-
在编码时,我倾向于在不同的窗口中打开一个交互式 python 会话,所以如果我对特定情况感到好奇,我可以边做边做实验。但是,这个特殊的问题是您普遍想知道的,答案几乎是没有陷阱。完全有可能创建一个像列表一样的对象,除非它在为空时访问它会引发异常,或者返回字符串“418 I'm a teapot”,或者其他令人惊讶的东西,但这将是一个非常不寻常且非 Python 的情况.