python的list(列表)

概述

本文介绍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是可变序列

内存操作如下:


原本指向数字1的引用,指向了数值100

其他常用方法

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)

原文出处:/show_1EF1QS9jy3wc.html