您好,匿名用户
随意问技术百科期待您的加入

为什么不推荐用len()判断列表是否为空?

0 投票

假设有个列表是 x = []
判断列表是否为空用:

if len(x) == 0:
    print true

这种方法似乎没什么问题,但是据说PEP 8标准里不推荐,为什么呢?
http://www.python.org/dev/peps/pep-00...

用户头像 提问 2013年 11月14日 @ Gangplank 上等兵 (314 威望)
分享到:

1个回答

0 投票
 
最佳答案

从逻辑上讲,一个集合(列表也可以看做一个集合)是否为空是比集合元素个数更基本的性质。比如:自然数集合不为空,但是自然数集合的元素个数是不知道的(当然……你可以说是aleph0)。

从风格上讲,一个列表长度为0隐含了一个列表为空,但是Python的格言是explicit is better than implicit,你判断一个列表是否为空不需要用一个更强的性质“长度”为0来判断。同理,也更不需要用

try:
   aList[0]
except:
   # empty!

来判断。虽然,这样也是可以的。但是你可以这样做不代表你应该这样做。Python不是Perl。

用户头像 回复 2013年 11月14日 @ Janna 下士 (667 威望)
选中 2013年 9月7日 @Gangplank
提一个问题:

相关问题

0 投票
1 回复 39 阅读
用户头像 提问 2012年 12月1日 @ Dante 上等兵 (290 威望)
0 投票
1 回复 30 阅读
用户头像 提问 2012年 12月1日 @ Hepheastus 上等兵 (182 威望)
+2 投票
1 回复 44 阅读
用户头像 提问 2013年 1月14日 @ Ashe 上等兵 (336 威望)
0 投票
1 回复 78 阅读
0 投票
1 回复 62 阅读
用户头像 提问 2012年 12月1日 @ Lady 上等兵 (162 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...