• Python中list的操作4-3


    除了对list进行添加元素和删除元素之外,还可以对list进行查找索引、排序、反转和拷贝等操作。

    3 其他操作

    3.1 查找索引

    使用index()方法查找指定值在list中的索引值。

    3.1.1 index()方法的语法

    list.index(value, start=0, end=9223372036854775807,/)

    其中,参数value是指定要查找的值;start表示起始索引值,end表示结束索引值,start和end参数都具有默认值。index()方法的返回值是指定值在列表中的索引值。

    3.1.2 相关代码

    index()方法的相关代码如下所示:

    1. list1 = [1,2,3,4]
    2. list1.index(2)
    3. 1
    4. list1.index(3,1,3)
    5. 2

    因为index()方法的start和end参数都具有默认值,因此一般情况下,只需指定其value参数即可。当指定了end参数和start参数之后,就在指定区间内搜索。

    3.1.3 注意事项

    (1)index()方法返回指定值第一次出现的位置索引

    1. >>> list1 = [1,2,3,4,3,4]
    2. >>> list1.index(3)
    3. 2

    从以上代码可以看到,list1中包含两个3,index()方法返回的是第一个3的索引。

    (2)当搜索的值不在list中,显示错误

    1. >>> list1.index(5)
    2. Traceback (most recent call last):
    3.   File "", line 1, in
    4.     list1.index(5)
    5. ValueError: 5 is not in list

    从以上代码中可以看到,list1中不包含5,因此使用index()元素搜索5时,会显示错误信息。该错误信息为“值错误,list中不包含5”。

    (3)返回的索引值是基于0,而不是基于参数start

    1. >>> list1.index(3,4,5)
    2. 4

    以上代码的含义是在list1的4-5索引之间搜索数值4,此时返回的索引值是4,即基于0,而不是基于start参数的。

    3.2 排序

    通过sort()方法对list中的元素进行排序,默认的排序方式是“升序”,即从小到大排序。

    3.2.1 sort()方法的语法

    list.sort(key=None, reverse=False)

    其中,参数key表示排序的规则,参数reverse表示排序方式,False时为“升序”,True时为“降序”。

    3.2.2 相关代码

    1. list1 = [1,4,2,5,3]
    2. list1.sort()
    3. print(list1)
    4. [1, 2, 3, 4, 5]

    以上代码使用默认参数,将list1中的元素进行从小到大排序。

    1. list1.sort(reverse=True)
    2. print(list1)
    3. [5, 4, 3, 2, 1]

    以上代码将list1中的元素进行从大到小排序。

    1. >>> def func(x):
    2. ...     return len(x)
    3. >>> list2 = ['a', 'AAA', 'aaAA', 'Aa']
    4. >>> list2.sort(key = func)
    5. print(list2)
    6. ['a', 'Aa', 'AAA', 'aaAA']

    以上代码中,定义了一个名为func()的函数,该函数的作用是返回参数的长度。将该函数作为sort()方法的key参数,因为没有指定reverse参数,因此以上代码表示以元素的长度进行从小到大排序。

    1. >>> list2.sort(key = func, reverse=True)
    2. >>> print(list2)
    3. ['aaAA', 'AAA', 'Aa', 'a']

    以上代码表示元素的长度进行从大到小排序。

    3.2.3 注意事项

    使用sort()方法对列表进行排序后,列表的变化是永久的,即使用sort()方法排序后,列表中元素的位置发生了变化。

  • 相关阅读:
    logback.xml配置详解
    Mysql数据库SQL语句与管理
    Java学习笔记4.1.2 字符串 - StringBuffer类与StringBuilder类
    Shell-04条件判断
    大前端 - UniAPP
    【深度学习实验】线性模型(二):使用NumPy实现线性模型:梯度下降法
    mmap()
    浏览器输入url,到看到页面会发生什么?
    [Linux 基础] linux基础指令(2)head,tail,Cal,find,grep,zip/unzip,tar,bc,uname
    数字图像处理——大作业 基于车道信息的违法车辆车牌识别
  • 原文地址:https://blog.csdn.net/hou09tian/article/details/126059148