擅长:python、mysql、java
<pre><code>my_list = [1,2,3,4,5]
len(my_list)
# 5
</code></pre>
<p>对于元组也是这样:</p>
<pre><code>my_tuple = (1,2,3,4,5)
len(my_tuple)
# 5
</code></pre>
<p>字符串,实际上只是字符数组:</p>
<pre><code>my_string = 'hello world'
len(my_string)
# 11
</code></pre>
<p>正是由于<a href="http://effbot.org/pyfaq/why-does-python-use-methods-for-some-functionality-e-g-list-index-but-functions-for-other-e-g-len-list.htm" rel="noreferrer">intentionally done this way</a>,所以列表、元组和其他容器类型并不都需要显式实现公共的<code>.length()</code>方法,相反,您只需检查实现“magic”<code>__len__()</code>方法的任何对象的<code>len()</code>。</p>
<p>当然,这看起来是多余的,但是长度检查的实现可以有很大的不同,即使在同一种语言中也是如此。一个集合类型使用<code>.length()</code>方法,而另一个类型使用<code>.length</code>属性,而另一个使用<code>.count()</code>方法并不少见。有一个语言级关键字统一了所有这些类型的入口点。因此,即使您可能不认为是元素列表的对象也可以进行长度检查。这包括字符串、队列、树等</p>
<p><code>len()</code>的函数性质也很适合于函数式编程。</p>
<pre><code>lengths = map(len, list_of_containers)
</code></pre>