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]]