• 27. Python 列表的索引取值


    27. 列表的索引取值

    1. 列表的索引

    和字符串一样,列表中的每一个元素也都有一个属于自己的编号,这个编号就是列表的索引。

    2. 列表索引取值

    通过字符串索引,我们可以取出字符串中的元素。

    通过列表索引,我们可以取出列表的元素。

    【语法】

    1. 列表名或者列表本身。
    2. 英文中括号。
    3. 索引。

    3. 列表的正索引取值

    # 新建一个str列表
    str_list = ["当归", "人参",  "黄芪"]
    
    print(str_list[0])
    print(str_list[1])
    print(str_list[2])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    【终端输出】

    当归
    人参
    黄芪
    
    • 1
    • 2
    • 3

    ⚠️正索引从左往右开始编号,编号从0开始!

    str_list[0]取到列表的第1元素当归
    str_list[1]取到列表的第2元素人参
    str_list[2]取到列表的第3元素黄芪

    4. 列表的负索引取值

    # 新建一个str列表
    str_list = ["当归", "人参",  "黄芪"]
    
    print(str_list[-1])
    print(str_list[-2])
    print(str_list[-3])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    【终端输出】

    黄芪
    人参
    当归
    
    • 1
    • 2
    • 3

    ⚠️负索引从右往左开始编号,编号从-1开始!

    str_list[-1]取到列表的倒数第1元素黄芪
    str_list[-2]取到列表的倒数第2元素人参
    str_list[-3]取到列表的倒数第3元素当归

    负索引取值通常使用在不知道列表有几个元素,或列表元素太多,你需要取倒数第n个元素的情况。

    【温馨提示】

    重点注意区分正索引从0开始编号,而负索引从-1开始编号。

    5. 用列表本身取值

    print(["当归", "人参",  "黄芪"][2])
    
    • 1

    【终端输出】

    黄芪
    
    • 1

    上述代码是直接从一个列表中取出列表的第3个元素。

    这样的方法很少用,了解即可。

    6. 从嵌套列表中取值

    【语法】

    列表[索引][索引]

    当需要从列表中的列表取值,即需要2次索引取值的时候,语法为列表[索引][索引]

    嵌套列表就是指列表中还有列表,即列表的某个元素或某几个元素的数据类型为列表。

    1. 列表[索引]从列表中取出含有身份证号码的元素:
    # 新建一个stu列表
    stu_list = ["白敬亭",   ["联系方式", 19987658765] , ["身份证号",  533001199101023456]]
    
    # 用正索引取出列表的第3个元素
    print(stu_list[2])
    
    # 用负索引取出列表的倒数第1个元素
    print(stu_list[-1])
    
    # 查看取到的元素的数据类型
    print("取到的元素数据类型为",type(stu_list[2]))
    print("取到的元素数据类型为",type(stu_list[-1]))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    【终端输出】

    ['身份证号', 533001199101023456]
    ['身份证号', 533001199101023456]
    取到的元素数据类型为 
    取到的元素数据类型为 
    
    • 1
    • 2
    • 3
    • 4

    观察上述结果,取到的元素的数据类型为列表list

    但这不是我想要的最终结果,我还想继续取出他的身份证号码,该如何操作呢?

    1. 列表[索引][索引]取出列表中的列表元素:
    # 新建一个stu列表
    stu_list = ["白敬亭",   ["联系方式", 19987658765] , ["身份证号",  533001199101023456]]
    
    # 用正索引取出列表的第3个元素,然后取出第3个元素中的第2个元素
    print(stu_list[2][1])
    
    # 用负索引取出列表的倒数第1个元素,然后取出倒数第1个元素中的倒数第1个元素
    print(stu_list[-1][-1])
    
    # 查看取到的元素的数据类型
    print("取到的元素数据类型为",type(stu_list[2][1]))
    print("取到的元素数据类型为",type(stu_list[-1][-1]))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    【终端输出】

    533001199101023456
    533001199101023456
    取到的元素数据类型为 
    取到的元素数据类型为 
    
    • 1
    • 2
    • 3
    • 4

    stu_list[2]取到了列表stu_list中的第3个元素,即['身份证号', 533001199101023456]

    stu_list[2][1]中的[2]先取到['身份证号', 533001199101023456]

    后面的[1]取到了['身份证号', 533001199101023456]中的第2个元素,即533001199101023456

    取到的数据类型为整数。

    7. 课后练习

    1. 我的书包中有雨伞、手机、钱包;钱包中有银行卡、公交卡、饭卡。

    【题目要求】

    1. 用一个列表存储书包中的物品。
    2. 用一个列表存储钱包中的物品。
    3. 编写代码从书包列表中取出公交卡。

    【参考答案】

    # 新建一个钱包列表
    qianbao = ["银行卡", "公交卡", "饭卡"]
    
    # 新建一个书包列表
    shubao = ["雨伞", "手机", qianbao]
    
    # 从书包中取出第3个元素qianbao,然后取出qianbao中的第2个元素公交卡
    print(shubao[2][1])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    【终端输出】

    公交卡
    
    • 1

    为了方便大家理解,上述列表名和列表中的元素我都用了中文。

    1. 取出下面列表中联系方式中的19987658765
    # 新建一个stu列表
    stu_list = ["白敬亭",   ["联系方式", [19987658765, 'xyz77520520']] , ["身份证号",  533001199101023456]]
    
    • 1
    • 2

    【参考答案】

    # 新建一个stu列表
    stu_list = ["白敬亭",   ["联系方式", [19987658765, 'xyz77520520']] , ["身份证号",  533001199101023456]]
    
    # 正索引取值
    print(stu_list[1][1][1])
    
    # 负索引取值
    print(stu_list[-2][-1][-1])
    
    # 查看取到的元素的数据类型
    print("取到的元素数据类型为",type(stu_list[1][1][1]))
    print("取到的元素数据类型为",type(stu_list[-2][-1][-1]))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    【终端输出】

    xyz77520520
    xyz77520520
    取到的元素数据类型为 
    取到的元素数据类型为 
    
    • 1
    • 2
    • 3
    • 4

    上面是3层列表嵌套(我自己起的名字),大家可以多写几个更复杂更多层的列表嵌套取值程序,体验列表的多索引取值,有报错的可以截图或发源代码给我。

    8. 总结

    列表的索引取值和字符串取值语法一致,注意正索引编号从0开始即可。

    本节重点掌握多次索引取值的语法:列表[索引][索引]

    列表取值编程中经常用到,需要重点掌握。

  • 相关阅读:
    client-go 实现一个自动创建ingress资源的controller
    [Angular 基础] - 表单:响应式表单
    Nacos多种安装方式
    flume入门案例
    1285. 找到连续区间的开始和结束数字
    Flink K8s Operator 如何提交flink SQL
    mySQL中查询统计俩个表相加COUNT之合
    谈谈JSF业务线程池的大小配置
    OpenGL_Learn15(投光物)
    elasticSearch+kibana+logstash+filebeat集群改成https认证
  • 原文地址:https://blog.csdn.net/weixin_63986098/article/details/126780895