python如何定义列表:两种主流写法
python如何定义列表主要有方括号直接赋值和list()构造函数两种方式,方括号写法适合提前知道全部元素的场景,元素之间用英文逗号隔开,支持数字、字符串、布尔值、嵌套列表等多种数据类型;list()适合把可迭代对象转为列表,字符串、元组、range序列都可以传入,这两种写法在Python3.6及之后的版本都稳定可用,你在脚本、交互式解释器里都能直接运行,不适合用来存放需要频繁扩容且数据体量很大的序列,这类场景优先选用数组。
python方括号定义列表
你直接写变量名,等号后面跟上英文方括号,括号内部填写列表元素,多个元素中间使用英文逗号分隔,末尾允许保留逗号,不会触发语法报错。空列表直接写变量=[],不需要填入任何内容。示例代码为a=[1,"文字",True,[2,3]],这个列表内部同时包含整数、字符串、布尔值和子列表,也就是嵌套列表。方括号定义的列表创建速度更快,代码行数更少,日常开发里使用频次更高。
元素顺序会被保留,列表属于有序可变容器,定义完成之后,你可以修改、新增、删除里面的元素,和元组不可修改的特性形成区分。
pythonlist函数定义列表
list()函数接收可迭代对象作为参数,迭代对象里的每一项会依次变成新列表里的元素。传入字符串时,字符串里的单个字符会拆分成为独立元素,list("abc")得到['a','b','c'];传入range对象list(range(1,4)),得到[1,2,3];传入元组list((5,6)),得到[5,6]。不带参数调用list(),list()会直接返回空列表,等价于[]。
list()不支持直接传入整数、浮点数这类不可迭代的数据,你执行list(123)会抛出类型错误,这个是高频出错点。
| 定义方式 | 基础示例 | 适合场景 |
|---|---|---|
| 方括号 | x=[1,2,3] | 元素固定、手写赋值 |
| list构造器 | x=list(range(3)) | 转换已有可迭代对象 |
列表推导式也属于定义列表的写法,它可以一边循环一边生成元素,适合有规则的批量数据。
示例写法:b=[i*2foriinrange(5)],运行后得到[0,2,4,6,8],它可以附带条件过滤,筛选符合要求的元素写入列表。
不要把列表和字典混淆,字典使用大括号,存放键值对,和列表的结构、读取方式不一样。
定义列表时,逗号必须是英文半角符号,中文逗号会直接报语法错误。
列表定义完成后,用索引读取元素,索引从0开始,第一个元素下标为0。
