概述
本文介绍list—列表
相当于可改变长度的数组
可以存储任意类型
可变序列
1. 声明
方式一:
>l=[]
>l
方式二:
声明列表时,指定元素
提示:列表可以存放 不同类型 的元素
>l=[1,2,3.14,'鹿晗']
>l
方式三:
>l=list(range(10))
>l
2. 访问list中的元素
语法
l[start:stop:step]
参数说明:
- start:开始的索引位置,包含
- stop:结束的索引位置,不包含
- step:步长,默认为1,当为负数时表示翻转
(1)通过索引访问元素,返回第一个元素
>l[0]
(2)访问范围
>l[0:2]
显示:[1,2],返回索引是0到2(不包含2)的元素
(3)访问范围
>l[2:]
显示:[1, 2, 3.14, ‘鹿晗’],返回索引从2到最后的元素
(4)访问范围
>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)访问范围
>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. 追加元素
>l.append('蔡徐坤')
>l
显示:[1, 2, 3.14, ‘鹿晗’, ‘马老师’]
4. list里面可以是list
同数组一样,数组里面也可以是数组
>l=[[1,2,3],4.5,5.6]
>l
显示:[[1, 2, 3], 4.5, 5.6]
另一种写法:
>l2=[1,2,3]
>l=[l2,4.5,5.6]
>l
访问元素:
>l[0][0]
5. 删除
根据索引删除
del l[1]
删除list中第一个匹配的元素
l.remove(0)
删除最后一个元素
使用 pop() 方法
# 删除最后一个元素,并返回该元素。如果列表为空,会报错
l.pop()
使用 del 关键字
# 直接删除最后一个元素,无返回值。列表为空时,会报错
del l[-1]
6. 修改list里面的元素
list里面的元素,原位置可以改变
>l=[1,2,3]
>l[0]=100
显示:[100, 2, 3]
证明list是可变序列
内存操作如下:
其他常用方法
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)

