2012-03-13 34 views
0

在我的代码中,我需要测试一个字符串是否为空数百万次。问题是,哪种方式更好/更快:if str == ''if len(str) == 0。如果有更好的方法来做到这一点,请分享。任何帮助赞赏。哪种方法确定空字符串更好?

+0

如果不需要,不要优化。写你pythonic的代码,然后找出瓶颈。尼克拉斯B的答案是最pythonic,但它最有可能无论你在最终使用什么解决方案效率和速度。 – 2012-03-13 20:39:29

回答

6

请不要命名变量str,因为这是一个内置函数的名称。

所以,如果你可以肯定的是s是一个字符串(这是希望的情况下),你可以使用

if not s: 
    # s is the empty string 

这应该是做这样的检查的preferredway。它也适用于list s,set s和dict s。在性能方面,可能没有明显的差异,但你当然可以衡量这一点。

+0

感谢您的快速响应。那么为什么这更好?这是否也适用于列表? – lllluuukke 2012-03-13 20:40:02

+0

它是惯用的Python。 – FogleBird 2012-03-13 20:40:28

+0

@lllluuukke底下它执行检查'如果len(str)== 0'并且更清洁。 – 2012-03-13 20:41:27