扫码关注官方订阅号
假设有个列表是 x = [] 判断列表是否为空用:
x = []
if len(x) == 0: print true
这种方法似乎没什么问题,但是据说PEP 8标准里不推荐,为什么呢?http://www.python.org/dev/peps/pep-00...
学习是最好的投资!
从逻辑上讲,一个集合(列表也可以看做一个集合)是否为空是比集合元素个数更基本的性质。比如:自然数集合不为空,但是自然数集合的元素个数是不知道的(当然……你可以说是aleph0)。
从风格上讲,一个列表长度为0隐含了一个列表为空,但是Python的格言是explicit is better than implicit,你判断一个列表是否为空不需要用一个更强的性质“长度”为0来判断。同理,也更不需要用
try: aList[0] except: # empty!
来判断。虽然,这样也是可以的。但是你可以这样做不代表你应该这样做。Python不是Perl。
不推荐的意思是“可以用”,但是建议用另一种方式(有的建议或许还隐含“最好不要这么用”)。
就像PEP8对空格和TAB的建议:
Use 4 spaces per indentation level.For really old code that you don't want to mess up, you can continue to use 8-space tabs.
如果你确定x是一个阵列,用if len(x)比if x运行要慢,特别是在Jython虚拟机上。为了让你的代码可以高效运行在pypy,Jython等非CPython环境下,使用if x更简洁,何乐而不为呢?
各位能不能说一下判断列表是否为空的最简方式?
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
从逻辑上讲,一个集合(列表也可以看做一个集合)是否为空是比集合元素个数更基本的性质。比如:自然数集合不为空,但是自然数集合的元素个数是不知道的(当然……你可以说是aleph0)。
从风格上讲,一个列表长度为0隐含了一个列表为空,但是Python的格言是explicit is better than implicit,你判断一个列表是否为空不需要用一个更强的性质“长度”为0来判断。同理,也更不需要用
来判断。虽然,这样也是可以的。但是你可以这样做不代表你应该这样做。Python不是Perl。
不推荐的意思是“可以用”,但是建议用另一种方式(有的建议或许还隐含“最好不要这么用”)。
就像PEP8对空格和TAB的建议:
如果你确定x是一个阵列,用if len(x)比if x运行要慢,特别是在Jython虚拟机上。为了让你的代码可以高效运行在pypy,Jython等非CPython环境下,使用if x更简洁,何乐而不为呢?
各位能不能说一下判断列表是否为空的最简方式?