Python len()函数:语法、示例和使用情况 len()函数是Python内置的一个函数,用于返回给定对象的长度或项目数。它可以应用于字符串、列表、元组、集合和字典等数据类型。 len()函数的语法如下: len(obj) 其中,obj是要计算长度的对象。 下面是一些使用len()函数的示例: 1. 计算字符串的长度: “` str = “Hello, World!” print(len(str)) “` 输出结果:13 2. 计算列表的长度: “` list = [1, 2, 3, 4, 5] print(len(list)) “` 输出结果:5 3. 计算元组的长度: “` tuple = (1, 2, 3, 4, 5) print(len(tuple)) “` 输出结果:5 4. 计算集合的长度: “` set = {1, 2, 3, 4, 5} print(len(set)) “` 输出结果:5 5. 计算字典的长度(即键的数量): “` dict = {“name”: “John”, “age”: 30, “city”: “New York”} print(len(dict)) “` 输出结果:3 len()函数的使用案例非常广泛,特别是在需要确定对象的长度或项目数时非常有用。无论是字符串、列表、元组、集合还是字典,都可以使用len()函数来获取其长度。

当使用python可迭代对象时,查找可迭代对象包含的项目数量是一种常见操作。了解如何使用python的内置len函数来查找可迭代对象的长度以及更多内容。

python提供了一套内置数据结构和一组用于处理这些数据结构的方法。此外,在处理这些数据结构时,还有一些方便的内置函数。其中一个函数是len(),它给出了可迭代对象中的项目数量。

在本教程中,我们将学习如何在列表、元组、字符串等中使用len()函数。我们还将看到一些常见的用例。

让我们开始吧!👩‍🏫

python len()函数的语法

下面是使用python的len函数的语法:

len(iterable)

如上所示,len()函数需要一个参数,该参数是任何有效的可迭代对象。可迭代对象通常是列表、元组或字符串之一。但它也可以是任何其他有效的类型。

我们可以看到,使用len()函数的语法非常简单。接下来,让我们继续编写一些示例代码。

📑 对于本教程中的代码示例,您可以在python repl中进行编码。

使用len()函数处理可迭代对象

使用序列

您可以使用len()函数查找列表、元组和字符串等可迭代对象的长度。

以下是一个示例:

>>> nums = [9,3,6,1,2]
>>> len(nums)
5

>>> nums_tup = (9,3,6,1,2)
>>> len(nums_tup)
5

对于这些存储序列的数据结构,您通常会根据索引访问元素或根据需要获取切片(子序列)。

使用其他集合

您还可以使用len()函数处理其他python集合,如集合和字典。

这些数据结构是无序集合。虽然您可能对项目的排序不感兴趣,但获取集合中项目的总数仍然很有帮助。

>>> nums_set = set(nums)
>>> len(nums_set)
5

>>> prices = {'notebook':5,'pencil case':7,'bookmarks':3,'pens':1,'markers':8}
>>> len(prices)
5

python len()函数的常见用例

到目前为止,我们已经看到了使用len()函数获取可迭代对象中项目数量的简单示例。现在让我们看看在实践中可以在什么地方使用它。

#1. 使用for循环进行迭代

python的for循环提供了一种循环遍历可迭代对象语法,格式为“ for an item in iterable”。但是,如果您想访问每个项目的索引而不是项目本身,或者同时访问索引和项目,您可以使用range()函数,如下所示:

>>> nums = [9,2,4,7,8]
>>> for i in range(len(nums)):
...      print(f"index {i}: {nums[i]}")

因为range(n)会给出整数序列0,1,2,…,n – 1,所以使用range(len(nums))会给出我们循环遍历的有效索引集。

# 输出结果
index 0: 9
index 1: 2
index 2: 4
index 3: 7
index 4: 8

然而,访问索引和元素的推荐pythonic方式是使用枚举函数:

>>> nums = [9,2,4,7,8]
>>> for idx,num in enumerate(nums):
...     print(f"索引 {idx}: {num}")
# 输出
索引 0: 9
索引 1: 2
索引 2: 4
索引 3: 7
索引 4: 8

#2. 使用while循环进行条件循环

假设你有一个数字列表nums。列表方法pop()删除列表中的最后一项并返回它。

只要nums列表的长度len(nums)大于零-至少有一个可以删除的元素。

>>> nums = [9,2,4,7,8]
>>> while len(nums) > 0:
...     nums.pop()
# 输出
8
7
4
2
9

上面的示例是以下示例的更明确的写法:

>>> nums = [9,2,4,7,8]
>>> while nums:
...     nums.pop()

while nums:等同于条件“当nums列表不为空时”

#3. 检查和验证可迭代对象的长度

len函数的另一个常见用法是检查和验证某些可迭代对象的长度。 

在这里,我们根据长度(使用len()函数计算)检查username是否是有效字符串:

>>> username = "another-random-user"
>>> if len(username) > 10:
...     print("用户名太长,最多应为10个字符长。")
... elif len(username) < 5:
...     print("用户名太短,至少应为5个字符长。")
... else:
...     print("有效的用户名!")
用户名太长,最多应为10个字符长。

#4. 列表和字典推导

在python中,推导提供了一种简明的语法来从现有的可迭代对象构建新的可迭代对象。我们可以在推导表达式中使用内置函数。

列表推导

在这个列表推导中,我们使用len()函数来获取languages列表中每个字符串的长度。

>>> languages = ['python','c','rust','javascript']
>>> len_langs = [len(lang) for lang in languages]
>>> len_langs
[6, 1, 4, 10]

字典推导

在这个字典推导中,我们使用languages列表和len()函数构建一个字典:

>>> languages = ['python','c','rust','javascript']
>>> lang_len = {lang:len(lang) for lang in languages}
>>> lang_len
{'python': 6, 'c': 1, 'rust': 4, 'javascript': 10}

在这里,键和值分别是语言字符串和语言字符串的长度。

#5. 自定义排序中的关键参数

python中有内置的sort()方法来对python列表进行原地排序,以及sorted()函数来对列表和其他可迭代对象进行排序。

在这两种情况下,您可以使用key参数来自定义排序。

在这里,我们基于字符串的长度对languages列表进行排序。

>>> languages = ['python','c','rust','javascript']
>>> languages.sort(key=len)
>>> languages
['c', 'rust', 'python', 'javascript']

在下面的代码片段中,我们使用sorted()函数来获得一个排序后的列表。

>>> languages = ['hindi','english','german','french']
>>> sorted(languages,key=len)
['hindi', 'german', 'french', 'english']

在这个例子中,'german'和'french'都有6个字符。由于sorted()函数执行稳定排序,原始列表的顺序得以保留。

#6. numpy数组的长度

您还可以将len()函数与其他数据结构一起使用,比如numpy数组。

>>> import numpy as np
>>> np_array = np.array([3,4,6,9])
>>> type(np_array)

>>> len(np_array)
4

在这种情况下,np_array是一个包含4个元素的向量。因此,len(np_array)返回4,即数组中的元素数量。

矩阵是一个二维数组。

考虑以下示例。len(np_array)为2,这是行数。

>>> matrix = [[1,2,3],[4,5,6]]
>>> np_array = np.array(matrix)
>>> np_array
array([[1, 2, 3],
       [4, 5, 6]])
>>> len(np_array)
2

为了理解,让我们回到matrix。我们有一个嵌套的列表结构,外部列表包含两个嵌套的列表。len()函数返回容器中的项数(这里是两个列表):

>>> help(len)
help on built-in function len in module builtins:

len(obj, /)
    return the number of items in a container.

然而,当您开始使用多维数组时,建议使用shape属性。

>>> np_array.shape
(2, 3)

使用python的len()函数时要避免的常见问题

在我们结束讨论之前,让我们看看在使用len函数时应避免的一些常见问题。

将len()与非可迭代数据类型一起使用

我们知道len函数只接受有效的可迭代对象作为参数。这意味着如果您使用len函数时提供了一个无效的、不可迭代的数据类型,将会遇到错误。

这些无效类型包括基本数据类型,如整数、浮点数和布尔值:

在python中,生成器是内存高效的选择,用于需要生成序列的用例。生成器对象按需返回序列的元素,一次返回一个元素。但是生成器对象没有长度。

因此,如果尝试计算生成器对象的长度,会出现错误:

在长度为一的元组中使用len()
如果只向元组中插入一个元素,python会将其解释为单个元素而不是元组。

这是一个例子:

所以当你有一个只有一个元素的元组时,用这种形式初始化它:tuple_name = (elt, ),以便它被解释为一个元组:

总结
以下是本教程中涵盖的内容的总结:

您可以使用python中的len()函数找到任何可迭代项中的项目数。使用长度函数的语法是:len(any-valid-iterable)。

这包括序列,如列表、元组和字符串。还包括其他集合,如字典和集合。

len()函数在循环和推导中常用。

您还可以在需要根据长度自定义排序时将len()函数用作关键参数。例如:根据长度对字符串列表进行排序。

接下来,学习如何使用python的sum()函数。

类似文章