列表导读

从列表开始,我们将陆续学习元组,集合,字典这4中容器类型数据。容器类型数据,只是望文生义,你大概能够猜测出这4种数据类型的作用,他们如同容器一样,可以存储int,float,bool,str。每一种容器类型数据都有各自的存储方式和要求,因此,他们适用于不同的场景。

什么是列表?

在讲解列表之前,我们先做一个简单的智力测验,我每天给你一个小球,每个小球都一模一样,且不允许你做任何标记,在第100天的时候,我要求你拿出来我第35天给你的那个小球,请你思考,你该如何存放小球,才能保证我说出天数,你拿出天数所对应的小球。

稍动一下脑筋,你就应该可以想出方法来,所有的小球都按顺序排放,第1天的小球排第1位,第2天的小球排第2位,以此类推,那么当我要求你找出第35天给你的小球时,你需要做的是从第1个小球开始数数,数到35时,这个小球就是我想要的。

列表的数据存储与访问与刚才所讲的小球摆放有着相同的道理,一切只与顺序有关,提到顺序,是不是想到了有序,是不是想到了索引?没错,列表里也有索引的概念,列表是数据的有序集合。

1. 创建列表

list1 = [1, 2, 3, 4, 5 ]

list2 = [1, 2, '3', True]

list3 = [[1,2,3], True, 1]

列表里可以存放任意类型的数据,每个数据之间,用逗号分隔,整个列表被包裹在一对中括号[]里,如果你定义lst = [],[]表示一个空列表。

2. 索引的概念

列表是数据的有序集合,对于列表里数据的操作,都必须通过索引来完成,回想一下上一篇的智力测试,所有的小球按顺序排放,顺序就是小球的索引,你可以将索引就理解为顺序,只是有一点务必牢记,计算机里的索引,或者说顺序,都是从0开始的

lst = [2, 3, 5, 6]

下面这张图很好的阐述了索引的概念

所谓正序索引,就是从左向右看,倒序索引就是从右向坐看,由左至右,从0开始递增,从右向左,从-1开始递减,python既支持正序索引,也支持倒序索引。

3.向列表中新增数据

向列表中新增数据有两种方法,一个是insert,一个是append,前者需要指定插入的位置,而append则默认在列表的尾部插入数据,下面的代码演示如何使用这两个方法新增数据

lst = [3, 5, 8, 1, 2, 6, 9]

lst.insert(2, 22) # 将22插入到索引为2的位置上

lst.append(33) # 将33增加到列表尾部

print(lst)

下图很好的解释了这两种新增方法的区别

4. 访问列表里的数据

访问列表里的数据,必须提供索引,假设你想输出列表里的第0个元素,和倒数第一个元素,你应该这样操作

lst = [3, 5, 8, 1, 2, 6, 9]

print(lst[0])

print(lst[-1])

程序输出结果为

3

9

根据索引获取列表里的数据,需要使用中括号[],在[]里填写你想要获取数据的索引,如果这个索引超出了范围,就会报错

lst = [3, 5, 8, 1, 2, 6, 9]

print(lst[12])

报错内容为

Traceback (most recent call last):

File "/Users/kwsy/PycharmProjects/pythonclass/wx_monitor/main.py", line 2, in

print(lst[12])

IndexError: list index out of range

这是因为列表里根本没有这个索引,你想要找的索引已经超出了列表索引的范围。

5. 遍历列表

遍历索引,需要使用for循环,你可以写出至少3种for循环,每一个都可以遍历列表里所有的元素

方法1,通过索引遍历

lst = [3, 5, 8, 1, 2, 6, 9]

for i in range(len(lst)):

print(lst[i])

方法2,通过迭代器遍历

lst = [3, 5, 8, 1, 2, 6, 9]

for item in lst:

print(item)

方法3, 通过enumerate函数遍历

lst = [3, 5, 8, 1, 2, 6, 9]

for index, item in enumerate(lst):

print(index, item)

关于enumerate函数,可以在内置函数章节里学习

6. 删除列表里的元素

删除列表里的元素有两种方法,一种是根据索引来删除,一种是根据值来删除,先说根据索引删除

根据索引删除列表里的元素

列表的pop方法可以删除指定索引位置上的数据

lst = [3, 4, 1, 4, 2]

lst.pop(0) # 删除索引为0的元素

print(lst)

pop只会删除指定索引位置的元素,程序输出结果为

[4, 1, 4, 2]

除了使用pop方法,你还可以使用del 关键字

lst = [3, 4, 1, 4, 2]

del lst[0]

print(lst)

del lst[0] 等价于 lst.pop(0)

根据值删除列表里的元素

根据值删除,使用remove方法,remove会删除列表里指定的值,比如你想删除4

lst = [3, 4, 1, 4, 2]

lst.remove(4)

print(lst)

需要注意的是,remove方法一次只会删除一个值,列表里有两个4,它会删除索引最小的那个4,程序输出结果为

[3, 1, 4, 2]

7. 和列表相关的几个重要内置函数

7.1 len,计算列表长度

len函数已经不是第一次接触了,len函数不仅能求列表的长度,还能求字符串的长度,集合的长度,元组的长度,字典的长度,他们的用法如此统一,减轻了我们学习的难度

lst = [3, 4, 1, 4, 2]

print(len(lst))

7.2 max,返回数列的最大值

max不仅可以作用于列表,也可以作用于元组,它会返回数列里的最大值

lst = [3, 4, 1, 4, 2]

print(max(lst))

肉眼可见,4是列表的最大值,max函数返回值为4

7.3 min, 返回数列的最小值

min可以作用于列表,也可以作用于元组,它返回数列里的最小值

lst = [3, 4, 1, 4, 2]

print(min(lst))

1是列表的最小值,min函数返回值为1

7.4 sum,返回数列里所有数据的和

同样,sum函数可以作用于列表,也可以作用于元组,它返回数列里所有数的总和

lst = [3, 4, 1, 4, 2]

print(sum(lst))

列表里所有元素的总和是14,这正是sum函数的返回值

8. 列表操作符

操作符

功能作用

+

连接两个列表

*

重复列表内容

in

成员操作符,判断某个数据是否在列表中

not in

成员操作符,判断某个数据是否在列表中

列表对 + 和 * 的操作符与字符串相似,现在,在交互式解释器里跟随我一起操作

>>> lst1 = [1, 2, 3]

>>> lst2 = [4, 5, 6]

>>> lst1 + lst2

[1, 2, 3, 4, 5, 6]

>>> lst1*3

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

>>> 3 in lst1

True

>>> 4 not in lst2

False

初学者对Python开发的概念都是模糊不清的,Python开发能做什么,学的时候该按照什么线路去学习,学完往哪方面发展?

想深入系统了解Python开发可以扫码加我微信号,免费领取开发工具、学习资料,还有专业的老师在线免费直播分享答疑!

从基础到项目实战全方面带你学习Python开发,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!

python学习详解_Python学习入门到精通:Python列表讲解相关推荐

  1. awk命令详解_python学习之利用urllib和urllib2访问http的GET/POST详解

    前言 本文主要给大家介绍了关于python如何学习访问http的GET/POST的相关内容,使用urllib和urllib2,可以轻松实现对http的访问,下面话不多说了,来一起看看详细的介绍吧. 示 ...

  2. python录音详解_python音频处理的示例详解

    准备工作: 首先,我们需要 import 几个工具包,一个是 python 标准库中的 wave 模块,用于音频处理操作,另外两个是 numpy 和 matplot,提供数据处理函数. 一:读取本地音 ...

  3. python数据库环境详解_python中MySQL数据库相关操作

    一 安装基本环境 1 简介 MySQL 基于TCP 协议之上的开发,但是网络连接后,传输的数据必须遵循MySQL的协议,封装好MySQL协议的包,就是驱动程序 MySQL 的驱动 MySQLDB 最有 ...

  4. python super详解_Python super 详解

    说到 super, 大家可能觉得很简单呀,不就是用来调用父类方法的嘛.如果真的这么简单的话也就不会有这篇文章了,且听我细细道来. 约定 在开始之前我们来约定一下本文所使用的 Python 版本.默认用 ...

  5. python类详解_python面向对象编程:python类和实例讲解

    东尧爱分享 这是东尧每天一篇文章的第51天 东尧写文章的目标:分享东尧的经验和思考,帮你获取物质和精神两方面幸福. 1 什么是对象 在python里面,一切皆为对象.也就是说python里的所有数据都 ...

  6. 详解spring框架入门到精通

    spring概述 spring框架的优点 spring框架的组成 spring核心IOC IOC概述 IOC入门案例 创建maven jar工程 引入spring的依赖 引入spring的核心配置文件 ...

  7. python中数据准备_Python 从入门到精通:一个月就够了!

    毫无疑问,Python 是当下最火的编程语言之一.对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握 Python 看似是一件十分困难的事.其实,只要掌握了科学的学习方法并制定了合理的学习计划, ...

  8. python变量详解_Python 变量详解[学习 Python 必备基础知识][看此一篇就够了]

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 1 P ...

  9. python atm作业详解_Python学习day5作业-ATM和购物商城

    Python学习day5作业 Python学习day5作业 ATM和购物商城 作业需求 ATM:指定最大透支额度 可取款 定期还款(每月指定日期还款,如15号) 可存款 定期出账单 支持多用户登陆,用 ...

最新文章

  1. Python基础10-函数基础
  2. MySQL使用命令备份和还原数据库
  3. js 到 jsp 传输数据
  4. Redisson 分布式锁实现分析(一)
  5. SpringBoot实现懒加载@Lazy
  6. Android 拍照、从相册选择图片
  7. linux判断文件是否为空,linux shell编程 如何判断一个文件是否为空
  8. ORA-01033 的解决
  9. Android 之 网络连接(Connecting to the Network)
  10. 罗马数字和阿拉伯数字转换
  11. servlet后端连接 微信小程序与_微信小程序授权登录
  12. 使用jsoup爬虫超时分析与处理
  13. 调用企业微信接口发送微信消息
  14. 外交部官员回应中国免签国都是穷乱国:需要时间
  15. Transformer详解
  16. 分享5款堪称神器的免费软件,建议先收藏再下载
  17. Git - git 入门
  18. 音视频基础:音频(PCM和AAC)
  19. ApacheCon Asia 2022 启动,7 场阿里云大数据 +AI 议题分享等你围观
  20. WeQuant交易策略—5日均线

热门文章

  1. Base64编解码(C++版)
  2. 国内外ip地址黑名单查询
  3. Delphi 的绘图功能[10] - TFONT 类
  4. 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“8856f961-340a-11d0-a96“...
  5. 根据twitter的snowflake算法生成唯一ID
  6. jQuery的push
  7. sql 条件求和_Excel VBA+SQL 多条件求和实例
  8. python实验收获_python实验课代码心得
  9. idea配置tomcat以及环境变量
  10. PHP实现归治算法,PHP排序算法系列之归并排序详解