python的list(列表) 作者:马育民 • 2018-06-30 22:03 • 阅读:10284 # 概述 本文介绍list--列表 相当于可改变长度的数组 可以存储任意类型 可变序列 # 1. 声明 ### 方式一: ```python >l=[] >l ``` ### 方式二: 声明列表时,指定元素 **提示:**列表可以存放 **不同类型** 的元素 ```python >l=[1,2,3.14,'鹿晗'] >l ``` ### 方式三: ``` >l=list(range(10)) >l ``` # 2. 访问list中的元素 ### 语法 ``` l[start:stop:step] ``` ##### 参数说明: - start:开始的索引位置,包含 - stop:结束的索引位置,不包含 - step:步长,默认为1,当为负数时表示翻转 ### (1)通过索引访问元素,返回第一个元素 ```python >l[0] ``` ### (2)访问范围 ```python >l[0:2] ``` 显示:[1,2],返回索引是0到2(不包含2)的元素 ### (3)访问范围 ```python >l[2:] ``` 显示:[1, 2, 3.14, '鹿晗'],返回索引从2到最后的元素 ### (4)访问范围 ```python >l=list(range(10)) >l[1:8:2] ``` 执行结果: ``` arr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] arr2: [1, 3, 5, 7] ``` 其中: ``` [1:8:2] 表示:返回索引从1到8,间隔2个元素 ``` ### (5)访问范围 ```python >l=list(range(10)) >l[ : ] # 冒号前后都不写,表示新列表中的元素与原列表中的元素相同 ``` 执行结果: ``` arr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] arr2: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ``` ### (6)新列表与原列表 对 新列表 添加元素、删除元素、修改元素,都 **不会影响** 原列表 ``` students = ['李雷','韩梅梅','lucy','lili'] students2 = students[:] students2.append("张三") print("students:",students) print("students2:",students2) ``` ### (6)翻转 ``` arr=list(range(10)) arr2=arr[::-1] print('arr:',arr) print('arr2:',arr2) ``` 执行结果: ``` arr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] arr2: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] ``` 其中: ``` arr[::-1] 当第三个数为负数时,表示翻转,-1表示间隔1个元素; 第一个参数的范围是 -1~-len(arr); 第二个参数的范围是 -2~-len(arr)-1 ``` # 3. 追加元素 ```python >l.append('蔡徐坤') >l ``` 显示:[1, 2, 3.14, '鹿晗', '马老师'] # 4. list里面可以是list 同数组一样,数组里面也可以是数组 ```python >l=[[1,2,3],4.5,5.6] >l ``` 显示:[[1, 2, 3], 4.5, 5.6] 另一种写法: ```python >l2=[1,2,3] >l=[l2,4.5,5.6] >l ``` 访问元素: ```python >l[0][0] ``` # 5. 删除 根据索引删除 ``` del l[1] ``` 删除list中第一个匹配的元素 ``` l.remove(0) ``` # 6. 修改list里面的元素 list里面的元素,原位置可以改变 ```python >l=[1,2,3] >l[0]=100 ``` 显示:[100, 2, 3] 证明list是可变序列 ### 内存操作如下: [](http://www.malaoshi.top//upload/0/0/1EF1QSeyEDKA.png) 原本指向数字1的引用,指向了数值100 [](http://www.malaoshi.top//upload/0/0/1EF1QSfBspGD.png) # 其他常用方法 https://www.runoob.com/python/python-lists.html # 思考题 ``` 循环打印l的每一个元素,并在循环中删除韩梅梅 l=['李雷','韩梅梅','lucy','lili'] ``` 答案 ``` l=['李雷','韩梅梅','lucy','lili'] for index in range(len(l)-1,-1,-1): print(l[index]) if l[index]=='韩梅梅': del l[index] print(l) ``` 原文出处:http://www.malaoshi.top/show_1EF1QS9jy3wc.html