Python list() 函数

Python list() 语法

list() 是 Python 的一个内置函数,它接收一个可迭代对象作为参数,然后返回一个列表。换句话来说,list() 函数可以将 “其他可迭代对象” 转换为 “列表”。

语法:

list(iterable)

说明:

list() 接收单个参数。

  • iterable(可选):可以是任意可迭代对象(如元组、字符串、集合等)。如果 iterable 省略,则返回一个空列表;如果 iterable 不省略,则创建一个由可迭代项组成的列表。

list() 是创建列表的显式方式,通常比使用方括号 “[]” 语法更灵活,尤其是在需要从其他数据类型转换时。

注意:

  • list() 总是创建一个新的列表对象,即使参数本身就是一个列表,它也会创建一个副本。
  • 当从字典转换时,list() 默认只转换字典的键。

Python list() 摘要

使用频率
官方文档 查看
相关函数 tuple()dict()set()

Python list() 示例

接下来,我们通过几个简单的例子来讲解一下 Python list() 函数是如何使用的。

示例 1:list() 将 “元组或字符串” 转换为列表

# 元组
a = ('绿', '叶', '网')
print(list(a))

# 字符串
b = '绿叶网'
print(list(b))

运行结果如下。

['绿', '叶', '网']
['绿', '叶', '网']

示例 2:list() 将 “字典和集合” 转换为列表

# 字典
a = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
print(list(a))

# 集合
b = {'红', '绿', '蓝'}
print(list(b))

运行结果如下。

['Jack', 'Lucy', 'Tony']
['红', '绿', '蓝']

分析:

需要注意的是,如果 list() 的参数是一个字典,那么只会将字典的所有键作为元素组合成一个列表。

示例 3:list() 将 “其他可迭代对象” 转换为列表

a = range(5)
print(list(a))

运行结果如下。

[0, 1, 2, 3, 4]

分析:

当然了,你也可以使用自定义的可迭代对象作为 list() 函数的参数。

list() 最佳实践

如果只是单纯想创建一个列表,我们更推荐使用中括号 “[]” 的方式。这种方式比使用 list() 函数更简单方便。下面两种写法是等价的:

# 使用 “[]”(推荐)
colors = ['红', '绿', '蓝']

# 使用 list()
colors = list(['红', '绿', '蓝'])

如果你想要将一个可迭代对象转换为一个列表,此时就应该使用 list() 函数来实现了。

常见问题

1. list() 和 “[]” 这 2 种创建列表的方式,它们哪个性能更好一些?

直接使用 “[]” 略快一点,但差异可以忽略不计。在实际开发中,我们应该优先考虑代码可读性,也就是优先考虑使用 “[]” 创建列表。

2. 如何将嵌套可迭代结构转换为列表?

list() 函数默认只会转换你传入的 “最外层可迭代对象” 。如果你的数据结构是嵌套的(例如:一个元组里面包含列表,或者一个列表里面包含元组),list() 不会递归地转换内层的结构。

如果想要让嵌套的可迭代结构也转换为列表,我们需要使用 “列表推导式” 或 “递归” 的方式来处理内层结构。

nested = ((1, 2), [3, 4])
result = [list(item) for item in nested]
print(result)      # 输出:[[1, 2], [3, 4]]

上一篇: str()

下一篇: tuple()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号