• 技术文章 >后端开发 >Python教程

    详细总结:Python列表list知识点

    WBOYWBOY2022-11-23 20:42:14转载849
    本篇文章给大家带来了关于Python的相关知识,其中主要介绍了一些关于列表的知识,包括创建列表、访问列表元素以及对列表内置函数和方法进行了一些整理,最后还有关于列表的知识汇总,下面一起来看一下,希望对大家有帮助。

    php入门到就业线上直播课:进入学习

    【相关推荐:Python3视频教程

    Python内置函数/方法详解—列表list

    列表是一个有序可更改的集合,并且是最常用的 Python 数据类型。在 Python 中,列表是使用方括号 [] 编写的。

    1、创建列表

    在Python中,列表中元素的数据类型可以不同,可以包含整数、浮点数和复数等,当然,也可以包含列表、元组、字典和集合等。

    1.1 使用 [ ] 创建列表

    创建一个列表,只需要把逗号分隔的不同数据项使用方括号 [] 括起来即可。

    list0 = []
    list1 = ['Baidu', 'Alibaba', 'Tencent']

    1.2 使用 list() 函数 创建(转换为)列表

    this_list = list(('apple', 'banana', 'cherry'))

    注意:在使用 list() 函数创建列表时,一定要注意双括号

    2、访问列表

    和列表一样,我们既可以使用下标索引访问列表中的某个元素(得到一个元素的值),也可以使用切片访问列表中的一组元素(得到是子列表)。

    2.1 下标索引访问

    下标索引访问元组分为两大类,即正向索引反向索引,格式为 list_name[i] ,其中,list_name 表示列表名,i表示索引值,i可以是正数(正向索引)也可以是负数(反向索引)。

    可以得知,list_name[0]表示列表的第一个元素list_name[-1]则表示列表的最后一个元素

    list_name = ['wzq', 'lgl', 'gz', 'whl', 'sj', 'hxw']print(list_name[0])print(list_name[-1])
    wzq
    hxw

    正向索引:从第一个(下标0)开始、第二个(下标1)…

    反向索引:从倒数第一个(下标-1)、倒数第二个(下标-2)…

    2.2 切片访问

    如若对上方描述不太理解,可参考下表:

    元组值wzqlglgzwhlsjhxw
    正向索引012345
    反向索引-6-5-4-3-2-1

    使用切片访问列表的格式为 list_name[strat : end : step] ,其中,start 表示起始索引,end 表示结束索引,step 表示步长。

    list_name = ['wzq', 'lgl', 'gz', 'whl', 'sj', 'hxw']print(list_name[1:5:2])print(list_name[-6:-1:3])
    ['lgl', 'whl']['wzq', 'whl']

    在使用切片访问列表元素时,list_name[strat : end : step],[start:end] 是左闭右开区间,即访问不了 end 代表的元素。

    2.3 for 循环遍历列表

    可以使用 for 循环遍历列表中的项目:

    fruit_list = ['apple', 'pear', 'cherry']for i in fruit_list:
        print(i)
    apple
    pear
    cherry

    2.4 检查项目是否存在

    要确定列表中是否存在指定的项,我们可以使用 in 关键字:

    # 检查列表中是否存在'apple'fruit_list = ['apple', 'pear', 'cherry']print('apple' in fruit_list)
    True

    使用 in 关键字检查列表中是否存在指定项时,如果存在,则返回 True ;反之,则返回 False

    2.5 更改列表值

    当我们创建列表后,我们可以对列表中的数据项进行修改或更新,当然我们也可以使用 append() 方法来添加列表项。

    fruit_list = ['apple', 'pear', 'cherry']fruit_list[2] = 'banana'print(fruit_list)
    ['apple', 'pear', 'banana']

    注意:元组一旦创建后,其值将无法被更改,但是有其他解决方法。

    2.6 列表连接(合并)/复制

    与字符串一样,列表之间可以使用 + 号和 * 号实现元组的连接复制,这就意味着它们可以生成一个新的列表。

    1、+连接(合并)

    x = [1, 2, 3]y = [4, 5, 6]print(x + y)
    [1, 2, 3, 4, 5, 6]

    2、*复制

    x = ['Hello']print(x * 5)
    ['Hello', 'Hello', 'Hello', 'Hello', 'Hello']

    2.7 嵌套列表

    使用嵌套列表即在列表里面创建其他列表。

    x = [1, 2, 3]y = ['a', 'b', 'c']z = [x, y]print(z)
    [[1, 2, 3], ['a', 'b', 'c']]

    2.8 列表比较

    列表比较需要引入 operator 模块的 eq 方法。

    # 导入 operator 模块import operator
    
    a = [1, 2]b = [2, 3]c = [2, 3]print("operator.eq(a, b):", operator.eq(a, b))print("operator.eq(b, c):", operator.eq(b, c))
    operator.eq(a, b): Falseoperator.eq(b, c): True

    3、内置函数

    3.1 打印输出 print()

    1、print()函数

    print() 函数的功能我们已经非常熟悉了,就是打印输出。

    my_list = ['pink', True, 1.78, 65]print(my_list)
    ['pink', True, 1.78, 65]

    3.2 确定列表项目 len()

    2、len()函数

    当我们要确定一个列表有多少项目(元素)时,可以使用len()函数。

    fruit_list = ['apple', 'banana', 'cherry']print(len(fruit_list))

    3.3 返回变量类型 type()

    3、type()函数

    使用 type() 函数可以确定变量是什么类型(字符串、列表、元组、字典或集合)。

    info_list = ['name', 'gender', 'age', 'height', 'weight']print(type(info_list))
    <class 'list'>

    当对info_list使用 type() 确定变量类型时,会返回<class 'list'>,表明这是一个列表

    3.4 转换为列表 list()

    4、tuple()函数

    tuple() 函数的功能是,将其他类型转换为元组类型,详细用法如下:

    str1 = 'Hello Python'print(list(str1))
    ['H', 'e', 'l', 'l', 'o', ' ', 'P', 'y', 't', 'h', 'o', 'n']
    tuple1 = ('Hello', 'Python')print(list(tuple1))
    ['Hello', 'Python']
    dict1 = {'Hello': 'Python', 'name': 'pink'}print(list(dict1))
    ['Hello', 'name']
    set1 = {'Hello', 'Python', 'name', 'pink'}print(list(set1))
    ['Python', 'name', 'pink', 'Hello']
    range1 = range(1, 6)print(list(range1))
    [1, 2, 3, 4, 5]

    3.5 元组元素最大/小值 max()、min()

    5、max()函数和min()函数

    max() 函数的作用是返回列表中元素最大值min() 函数的作用是返回列表中元素最小值

    list1 = [4, 6, 2, 0, -5]print(max(list1))print(min(list1))list2 = ['a', 'z', 'A', 'Z']print(max(list2))print(min(list2))
    6-5z
    A

    3.6 删除列表 del

    我们可以使用 del list_name[i] 来删除某个指定元素,其中 list_name 表示列表名,i 表示指定值的索引值。

    list_de = ['Baidu', 'Alibaba', 'Tencent', 'Bytedance']del list_de[1]print(list_de)
    ['Baidu', 'Tencent', 'Bytedance']

    del 函数不仅可以实现删除某个元素,还可以删除整个列表。

    list_de = ['Baidu', 'Alibaba', 'Tencent', 'Bytedance']del list_de

    当我们使用 del 函数删除某列表后,再使用 print() 函数打印输出时,会报错NameError: name 'list_de' is not defined,表明该列表未被定义。

    4、内置方法

    4.1 添加元素 append()、insert()、extend()

    1、append()方法

    append() 方法用于在列表末尾添加新的对象。

    语法

    list.append(element)

    参数值

    参数描述
    element必需。任何类型(字符串、数字、对象等)的元素。

    实例

    fruit_list = ['apple', 'banana', 'cherry']fruit_list.append('pear')print(fruit_list)
    ['apple', 'banana', 'cherry', 'pear']
    x = [1, 2, 3]y = ['A', 'B', 'C']x.append(y)print(x)
    [1, 2, 3, ['A', 'B', 'C']]

    2、insert()方法

    insert() 方法用于将指定对象插入列表的指定位置。

    语法

    list.insert(position, element)

    参数值

    参数描述
    position必需。数字,指定在哪个位置插入值。
    element必需。元素,任何类型(字符串、数字、对象等)。

    实例

    fruits = ['apple', 'banana', 'cherry']fruits.insert(1, "orange")print(fruits)
    ['apple', 'orange', 'banana', 'cherry']
    x = [1, 2, 3]y = ['a', 'c']x.insert(0, y)print(x)
    [['a', 'c'], 1, 2, 3]

    append() 只能在末尾处添加元素或列表,insert() 可以在任意位置添加元素或列表。

    3、extend()方法

    extend() 方法用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

    语法

    list.extend(iterable)

    参数值

    参数描述
    iterable必需。任何可迭代对象(列表、集合、元组等)。

    实例

    aver = ['A', 'B', 'C']
    str1 = 'Hello'aver.extend(str1)print(aver)
    ['A', 'B', 'C', 'H', 'e', 'l', 'l', 'o']
    list1 = [1, 2, 3]aver.extend(list1)print(aver)
    ['A', 'B', 'C', 1, 2, 3]
    tuple1 = (1, 2, 3)aver.extend(tuple1)print(aver)
    ['A', 'B', 'C', 1, 2, 3]
    dict1 = {'name': 'pink', 'gender': True}aver.extend(dict1)print(aver)
    ['A', 'B', 'C', 'name', 'gender']
    set1 = {1, 2, 3}aver.extend(set1)print(aver)
    ['A', 'B', 'C', 1, 2, 3]
    range1 = range(1,10)aver.extend(range1)print(aver)
    ['A', 'B', 'C', 1, 2, 3, 4, 5, 6, 7, 8, 9]

    4.2 元素出现次数 count()

    count() 方法用于统计某个元素在列表中出现的次数。

    语法

    list.count(value)

    参数值

    参数描述
    value必需。任何类型(字符串、数字、列表、元组等)。要搜索的值。

    实例

    num = [1, 4, 2, 9, 7, 8, 9, 3, 1]print(num.count(9))
    2

    4.3 指定值索引 index()

    index() 方法用于从列表中找出某个值第一个匹配项的索引位置。

    语法

    list.index(element)

    参数值

    参数描述
    element必需。任何类型(字符串、数字、列表等)。要搜索的值。

    实例

    num = [4, 55, 64, 32, 16, 32]print(num.index(32))
    3

    当被搜索值在列表中多次出现时,仅返回首次出现的位置。

    4.4 对列表排序 sort()

    sort() 方法用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

    语法

    list.sort(reverse=True|False, key=myFunc)

    参数值

    参数描述
    reverse可选。reverse=True 将对列表进行降序排序。默认是 reverse=False。
    key可选。指定排序标准的函数。

    实例

    words = ['Name', 'Gender', 'Age', 'Height', 'Weight']words.sort()print(words)
    ['Age', 'Gender', 'Height', 'Name', 'Weight']
    words = ['Name', 'Gender', 'Age', 'Height', 'Weight']words.sort(reverse=True)print(words)
    ['Weight', 'Name', 'Height', 'Gender', 'Age']
    # 返回值的长度的函数:def myfunc(e):
        return len(e)words = ['a', 'bb', 'ccc', 'dddd', '']words.sort(key=myfunc)print(words)
    ['', 'a', 'bb', 'ccc', 'dddd']
    # 返回 'year' 值的函数:def myfunc(e):
        return e['year']words = [
        {'char': 'a', 'year': 1963},
        {'char': 'b', 'year': 2010},
        {'char': 'c', 'year': 2019}]words.sort(key=myfunc)print(words)
    [{'char': 'a', 'year': 1963}, {'char': 'b', 'year': 2010}, {'char': 'c', 'year': 2019}]
    # 返回值的长度的函数:def myfunc(e):
        return len(e)words = ['aa', 'b', 'ccc', 'dddd']words.sort(reverse=True, key=myfunc)print(words)
    ['dddd', 'ccc', 'aa', 'b']
    # 获取列表的第二个元素def takeSecond(elem):
        return elem[1]# 列表random = [(2, 2), (3, 4), (4, 1), (1, 3)]# 指定第二个元素排序random.sort(key=takeSecond)# 输出类别print('排序列表:', random)
    排序列表: [(4, 1), (2, 2), (1, 3), (3, 4)]

    4.5 复制列表 copy()

    copy() 方法用于复制列表,类似于 a[:]

    语法

    list.copy()

    参数值

    无参数

    实例

    fruits = ['apple', 'banana', 'cherry', 'orange']x = fruits.copy()print(x)
    ['apple', 'banana', 'cherry', 'orange']

    复制(制作副本)的另一种方法是使用内置函数 list() ,如下:

    list1 = ['apple', 'banana', 'cherry']list_2 = list(list1)

    4.6 颠倒列表顺序 reverse()

    reverse() 方法用于反向列表中元素。

    语法

    list.reverse()

    参数值

    无参数

    实例

    fruits = ['apple', 'banana', 'cherry']fruits.reverse()print(fruits)
    ['cherry', 'banana', 'apple']

    4.7 删除元素 pop()、remove()、clear()

    1、pop()方法

    pop() 方法用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

    语法

    list.pop(pos)

    参数值

    参数描述
    pos可选。数字,指定需删除元素的位置。默认值 -1,返回最后的项目。

    实例

    fruits = ['apple', 'banana', 'cherry']fruits.pop()print(fruits)
    ['apple', 'banana']
    fruits = ['apple', 'banana', 'cherry']fruits.pop(1)print(fruits)
    ['apple', 'cherry']

    2、remove()方法

    remove() 方法用于移除列表中某个值的第一个匹配项。

    语法

    list.remove(element)

    参数值

    参数描述
    element必需。需删除的任何类型(字符串、数字、列表等)的元素。

    实例

    num = [1, 3, 2, 8, 3]num.remove(3)print(num)
    [1, 2, 8, 3]

    当被删除的元素在列表中存在多个时,默认删除首次出现的那个。

    3、clear()方法

    clear() 方法用于清空列表,类似于 del a[:]

    语法

    list.clear()

    参数值

    无参数

    实例

    word = ['A', 'B', 'C']word.clear()print(word)
    []

    clear() 方法的作用是清空列表,执行结束后对其使用 printf() 打印输出时,会输出 [] ,说明列表还存在,只是空列表而已。

    del 函数的作用是删除列表,执行结束后对其使用 printf() 打印输出时,会报错 NameError: name 'word' is not defined.

    5、总结

    函数描述
    print()打印输出
    len()确定列表项目
    type()返回变量类型
    list()转换为列表
    max()返回列表元素最大值
    min()返回列表元素最小值
    del删除列表
    方法描述
    append(obj)在列表末尾添加新的对象
    insert(index, obj)在指定位置添加元素
    extend(seq)将列表元素(或任何可迭代的元素)添加到当前列表的末尾
    count(obj)统计某个元素在列表中出现的次数
    index(obj)返回具有指定值的第一个元素的索引
    sort( key=None, reverse=False)对原列表进行排序
    copy()复制列表
    reverse()颠倒列表的顺序
    pop([-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
    remove(obj)移除列表中某个值的第一个匹配项
    clear()清空列表

    【相关推荐:Python3视频教程

    以上就是详细总结:Python列表list知识点的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:python
    上一篇:一起聊聊在python中读取和写入CSV文件 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 浅析怎么用python暴力破解wifi密码EXE应用• 怎么使用Python进行多线程并发下载图片• Python学习之列表和元组的使用详解• 一文详解python中的正则表达式(re模块)• 深入聊聊Python中的sqlite3数据库
    1/1

    PHP中文网