您的位置:首页 > 脚本大全 > > 正文

python中list用法(Python数据类型之List列表实例详解)

更多 时间:2021-10-09 00:03:38 类别:脚本大全 浏览量:1156

python中list用法

Python数据类型之List列表实例详解

本文实例讲述了python数据类型之list列表。分享给大家供大家参考,具体如下:

list列表

1.概述:

通过之前的学习,我们知道变量可以存储数据,但是一个变量只能存储一个数据,现在有一个班级,班级有20个人,现在求班级的平均年龄。

若按照之前的方式来解决

age1 = 10
age2 = 12
...
age20 = 12
average = (age1 + age2 +...+age20)/20

在这里,很显然这种方法显得很麻烦,而python提供了一种解决方案,就是使用列表,可以随时添加和删除其中的元素。

本质:list列表的本质是一种有序的集合

2.创建列表

语法: 列表名 = [元素1,元素2,元素3…说明:列表中的选项被称为元素,跟string类似,下标也是从0开始计数

使用:创建列表

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • #创建空列表
  • list1 = []
  • #创建带有元素的列表
  • list2 = [10, 20, 30, 10]
  • print(list2)
  • list3 = list(range(1,10))
  • list4 = [i for i in range(10)]
  • print(list3)
  • print(list4)
  • 输出:

    [10, 20, 30, 10]
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    在列表中元素的数据类型可以不同(灵活性)

  • ?
  • 1
  • 2
  • list3 = [33, "good", true, 10.32]
  • print(list3)
  • 输出:

    [33, 'good', true, 10.32]

    3.列表元素的访问

    3.1 列表的取值

    功能:访问list列表中元素值

    语法:列表名[索引]

  • ?
  • 1
  • 2
  • 3
  • list4 = [22, 33, 12, 32, 45]
  • #下标从0开始,最大值为len(list4)-1
  • print(list4[0])
  • 输出:

    22

    注意:当索引值大于len(list4)-1的时候,会出现以下错误:

  • ?
  • 1
  • 2
  • print(list4[5])
  • indexerror: list index out of range
  • 这个错误就是下标越界【下标超出了可表示的范围】

    3.2 列表元素的替换

    功能:更改列表元素的值

    语法:列表名[下标] = 值

  • ?
  • 1
  • 2
  • 3
  • 4
  • list4 = [22, 33, 12, 32, 45]
  • list4[0] = "hello"
  • print(list4[0])
  • print(list4)
  • 输出:

    hello
    ['hello', 33, 12, 32, 45]

    4.列表操作

    4.1 列表组合

    语法: 列表3 = 列表1 + 列表2

  • ?
  • 1
  • 2
  • 3
  • 4
  • list1 = [1, 2, 3]
  • list2 = ['hello', 'yes', 'no']
  • list3 = list1 + list2
  • print(list3)
  • 输出:

    [1, 2, 3, 'hello', 'yes', 'no']

    4.2 列表重复

    语法: 列表2 = 列表1 * n

  • ?
  • 1
  • 2
  • 3
  • list1 = [1, 2, 3]
  • list2 = list1 * 2
  • print(list2)
  • 输出:

    [1, 2, 3, 1, 2, 3]

    4.3 判断元素是否在列表中

    语法:元素 in 列表

    若存在则返回true,否则返回false

  • ?
  • 1
  • 2
  • list1 = [1, 2, 3]
  • print(1 in list1)
  • 输出:

    true

    4.4 列表截取

    语法:列表[start: end] 表示获取从开始下标到结束下标的所有元素[start, end)

  • ?
  • 1
  • 2
  • 3
  • 4
  • list1 = [1, 2, 3, 'hello', 'yes', 'no']
  • print(list1[2:4])
  • #若不指定start,则默认从0开始截取,截取到指定位置
  • #若不指定end,则从指定位置开始截取,截取到末尾结束
  • 输出:

    [3, 'hello']

    4.5 二维列表

    语法:列表 =[列表1,列表2,列表3,… ,列表n]

  • ?
  • 1
  • 2
  • #创建二维列表,即列表中的元素还是列表
  • list1 = [[1, 2, 3],[2, 3, 4],[5, 4, 9]]
  • 4.5 二维列表取值

    语法:列表名[下标1][下标2]

    注意:下标1代表第n个列表(下标从0开始),下标2代表第n个列表中的第n个元素

  • ?
  • 1
  • 2
  • list1 = [[1, 2, 3],[2, 3, 4],[5, 4, 9]]
  • print(list1[0][0])
  • 输出:

    1

    5.列表的方法

    5.1 list.append(元素/列表)

    功能:在列表中末尾添加新的元素【在原本的列表中追加元素】

    注意:append()中的值可以是列表也可以是普通元素

  • ?
  • 1
  • 2
  • 3
  • 4
  • >>> list1 = [3, 4, 6]
  • >>> list1.append(6)
  • >>> print(list1)
  • [3, 4, 6, 6]
  • 5.2 list.extend(列表)

    功能:在列表的末尾一次性追加另外一个列表中的多个值

    注意:extend()中的值只能是列表/元组[一个可迭代对象],不能是元素。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • >>> list1 = [1,2,3]
  • >>> list2 = [3, 4,5]
  • >>> list1.extend(list2)
  • >>> print(list1)
  • [1, 2, 3, 3, 4, 5]
  • 5.3 list.insert(下标值, 元素/列表)

    功能:在下标处插入元素,不覆盖原本的数据,原数据向后顺延。

    注意:插入的数据可以是元素也可以为列表。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • >>> list1 = [1,2,3]
  • >>> list1.insert(1,0)
  • >>> print(list1)
  • [1, 0, 2, 3]
  • >>> list1.insert(1,[2, 4, 8])
  • >>> print(list1)
  • [1, [2, 4, 8], 0, 2, 3]
  • 5.4 list.pop(下标值)

    功能:移除列表中指定下标处的元素(默认移除最后一个元素),并返回移除的数据。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • >>> list1 = [1, [2, 4, 8], 0, 2, 3]
  • >>> list1.pop()
  • 3
  • >>> print(list1)
  • [1, [2, 4, 8], 0, 2]
  • >>> list1.pop(2)
  • 0
  • >>> print(list1)
  • [1, [2, 4, 8], 2]
  • 5.5 list.remove(元素)

    功能:移除列表中的某个元素第一个匹配结果

  • ?
  • 1
  • 2
  • 3
  • list1 = [1, 2,3,2,4]
  • list1.remove(2)
  • print(list1)
  • 输出:

    [1, 3, 2, 4]

    5.6 list.clear()

    功能:清除列表中所有的数据

  • ?
  • 1
  • 2
  • 3
  • 4
  • >>> list1 = [1, 2, 3]
  • >>> list1.clear()
  • >>> print(list1)
  • []
  • 5.7 list.index(元素[, start][, stop])

    功能:从指定的范围的列表中找出某个值第一匹配的索引值

    若不指定范围,则默认是整个列表。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • >>> list1 = [1, 2, 3]
  • >>> list1.index(2)
  • 1
  • >>> list1.index(4)
  • traceback (most recent call last):
  •  file "<stdin>", line 1, in <module>
  • valueerror: 4 is not in list
  • 注意:若在列表中找不到这个元素,则会报错。

    5.8 list.count(元素)

    功能:查看元素在列表中出现的次数

  • ?
  • 1
  • 2
  • 3
  • >>> list1 = [1, 2, 3, 1]
  • >>> list1.count(1)
  • 2
  • 5.9 len(list)

    功能: 获取元素个数

  • ?
  • 1
  • 2
  • 3
  • >>> list1 = [1, 2, 3, 1]
  • >>> len(list1)
  • 4
  • 5.10 max(list)

    语法:获取列表中的最大值,元素是不同的数据类型时不能使用

  • ?
  • 1
  • 2
  • 3
  • >>> list1 = [1, 2, 3, 1]
  • >>> max(list1)
  • 3
  • 5.11 min(list)

    语法:获取列表中的最小值,元素是不同的数据类型时不能使用

  • ?
  • 1
  • 2
  • >>> list1 = [1, 2, 3, 1]
  • >>> min(list1)
  • 5.12 list.reverse()

    语法: 列表倒叙,直接修改原列表,返回值为none。

  • ?
  • 1
  • 2
  • 3
  • 4
  • >>> list1 = [1, 2, 3, 1]
  • >>> list1.reverse()
  • >>> print(list1)
  • [1, 3, 2, 1]
  • 5.13 list.sort()

    语法:列表排序 默认升序,元素是不同的数据类型时不能使用

  • ?
  • 1
  • 2
  • 3
  • 4
  • >>> list1 = [1, 2, 3, 1]
  • >>> list1.sort()
  • >>> print(list1)
  • [1, 1, 2, 3]
  • ?
  • 1
  • 2
  • 3
  • 4
  • #倒序
  • list1 = [1, 2,3,2,4]
  • list1.sort(reverse=false)
  • print(list1)
  • 输出:

    [1, 2, 2, 3, 4]

    5.14 浅拷贝

    语法:

  • ?
  • 1
  • 2
  • list1 = [1, 2, 3]
  • ​list2 = list1
  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • >>> list1 = [1, 2, 3, 1]
  • >>> list2 = list1
  • >>> print(list2)
  • [1, 2, 3, 1]
  • >>> print(id(list1))
  • 4314476424
  • >>> print(id(list2))
  • 4314476424
  • ?
  • 1
  • 2
  • 3
  • 4
  • list1 = [1, 2,3,2,4]
  • list2 = list1
  • list2[0] = 0
  • print(list1)
  • 输出:

    [0, 2, 3, 2, 4]

    注意:浅拷贝为引用拷贝,类似于快捷方式。

    浅拷贝中一个变量发生改变,另一个也相应发生改变,

    5.15 深拷贝

    语法:

  • ?
  • 1
  • 2
  • list1 = [1, 2, 3]
  • ​list2 = list1.copy()
  • 方式2:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • list2 = list1[:]
  • >>> list1 = [1, 2, 3, 1]
  • >>> list2 = list1.copy()
  • >>> print(list2)
  • [1, 2, 3, 1]
  • >>> print(id(list2))
  • 4314525320
  • >>> print(id(list1))
  • 4314524808
  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • list1 = [1, 2,3,2,4]
  • list2 = list1[:]
  • print(list2)
  • print(id(list1))
  • print(id(list2))
  • 输出:

    [1, 2, 3, 2, 4]
    2485711112520
    2485710239496

    注意:深拷贝为内存拷贝,开辟了新的内存空间

    5.16 list(元组)

    功能:将元组转为列表

  • ?
  • 1
  • 2
  • 3
  • >>> list1 = list((1, 2, 3, 4))
  • >>> print(list1)
  • [1, 2, 3, 4]
  • 6.列表的遍历

    6.1 使用for循环遍历列表

    语法:

    您可能感兴趣