列表

引题

原来学过数据类型如 a=1 b=‘hello’ ,但是这些都变量。现实生活中我们想表达 一个班的几十个学生,一个袋子里多个水果。python当中提供了一个表达“一组”概念的数据结构,列表。

语法

列表形如 [1,2,3,4] ['小明', '小红', '小王']
中括号括起来,里面有多个元素(项),项可以数字、字符串、布尔,每一项逗号分隔。

创建

  1. 声明变量时 中括号、项 ,创建一个非空的列表。
    num_list = [1, 2, 3, 4]
  2. 创建一个空列表,之后再修改
    num_list = []
  3. 类实例化创建(不常用)
    list1 = list()

添加

  1. append() 追加
    列表对象.append(新项) ,追加一个元素到列表末尾。
    list1 = [1,2,3]
    list1.append(4) → [1,2,3,4]
  2. (不常用)insert()
    列表对象.insert(索引,新项) ,插入到指定下标处。
    list1 = [1,2,3]
    list1.insert(0, 4) → [4,1,2,3]
  3. (不常用)列表合并
    两个变量都是列表时,可以合并
    list1 = [1]
    list2 = [2, 3]
    list1 + list2 → [1,2,3]
  4. 批量添加
    通过循环获取新项并依次调用append()
    list1 = ['小明', '小红']
    for i in ['小李', '小王', '小肖']:
    list1.append(i)
    list1 → ['小明', '小红', '小李', '小王', '小肖']

删除

  1. pop()
    列表对象.pop(索引) ,删除指定索引的那一项,删除成功后返回删除的内容。
    list1 = [1,2,3]
    list1.pop(0) → 1
  2. remove()
    列表对象.remove(项内容),根据项的内容删除。
    list1 = ['小明', '小红', '小青']
    list1.remove('小红')
    list1 → ['小明', '小青']
  3. (不常用)clear()
    列表对象.clear() ,清空所有项。
    list1 = ['小明', '小红', '小青']
    list1.clear()
    list1 → []
  4. (不常用)关键字 del
    list1 = ['小明', '小红', '小青']
    del list1[0]
    list1 → ['小红', '小青']

修改

  1. 根据下标修改
    列表对象[索引] = 新值
    list1 = ['小明', '小红', '小青']
    list1[1] = '小王'
    list1 → ['小明', '小王', '小青']

访问

  1. 通过下标(索引 index)访问。
    列表中的项以 0,1,2…编号。比如[1,2,3]中的元素1的下标是0。
    list1 = [1,2,3]
    list1[0] → 1
    list1[-1] → 3 下标负数表示倒数第几项
  2. 遍历,访问列表中每一项
    for i in ['小明', '小红', '小青']:
    print(i)
  3. 遍历,循环下标。 场景 修改。
    len(列表对象) 返回的是列表的项数。
    list1 = ['小明', '小红', '小青']
    for i in range(0, len(list1)):
    print(list1[i])

切片 slice

列表对象[起始下标 : 结束下标+1 : 步进] 左闭右开区间

list1 = ['小明', '小红', '小青', '小王', '小杨']
list1[0: 2] → ['小明', '小红']
list1[: 2] → ['小明', '小红'] 简写,从头开始截取,下标0的话可以省略
list1[2:] → ['小青', '小王', '小杨'] 简写,截取到末尾,末尾下标省略
list1[1:3] → ['小红', '小青']
list1[-3: -1] → ['小青', '小王'] 下标可以为负
list1[4: 0] → [] 注意截取的方向,第一个下标小于第二个下标,否则返回空
list1[::-1] → ['小杨', '小王', '小青', '小红', '小明']

查找

num_list = [1,2,3,4]
num_list.index(1) → 0
num_list.index(5) → 报错ValueError

in 判断, if 条件

num_list = [1,2,3,4]
1 in num_list → True
场景 与if 连用。
if 1 in [1,2,3,4]:
if []: 空列表 if判断为False。

排序

todo

可能出现的错误

num = [1,2,3,4]
num[4]
报错下标越界。IndexError: list index out of range
错误一般发生在收集数据代码逻辑错误,列表本身就位空。

写代码技巧

写几句代码就测试运行一下,多print(变量) type(变量),把大问题分解成小问题(先写input或先写某一个if分支),先把程序的大概结构写出来,再去写细节。

第一遍代码以模仿为主,刚开始谁都不知道怎样去写,会有歧义和可能。所以我们第一次只要根据答案抄一遍,想清楚思路。
第二遍比葫芦画瓢,举一反一,自己完整解决问题,初步具备编程思想和熟练度。
第三遍以后,项目越来越复杂,重复运用之前的知识点,知识点越来越熟练。

python列表的方法详解相关推荐

  1. c调用python脚本如何获取结果_使用C++调用Python代码的方法详解

    一.配置python环境问题 1.首先安装Python(版本无所谓),安装的时候选的添加python路径到环境变量中 安装之后的文件夹如下所示: 2.在VS中配置环境和库 右击项目->属性-&g ...

  2. python中search用法_Python中的python re.search方法详解

    re.search扫描整个字符串并返回第一个成功的匹配,若string中包含pattern子串,则返回Match对象,否则返回None,注意,如果string中存在多个pattern子串,只返回第一个 ...

  3. python列表拆包_详解python 拆包可迭代数据如tuple, list

    详解python 拆包可迭代数据如tuple, list 拆包是指将一个结构中的数据拆分为多个单独变量中. 以元组为例: >>> a = ('windows', 10, 25.1, ...

  4. python中new方法详解及_Python中new方法的详解

    new_ 方法是什么? __new__方法其实就是创建对象的方法 new()方法是在类准备将自身实例化时调用. 一个类可以有多个位置参数和多个命名参数,而在实例化开始之后,在调用 init()方法之前 ...

  5. Python 列表(List)操作方法详解

    列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型.列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类 ...

  6. Python之魔法方法详解

    转载于: https://pyzh.readthedocs.io/en/latest/python-magic-methods-guide.html 11.1. 简介 本指南归纳于我的几个月的博客,主 ...

  7. windows下python安装pip方法详解

    关于python 中pip版本过低,每次都需要升级的问题 注意:在安装python的过程中一定不要勾选pip选项,python安装完毕后,再利用下方的pip的安装方法一 python安装pip 1.前 ...

  8. python打包安卓的方法_打包发布Python模块的方法详解

    前言 昨天把自己的VASP文件处理库进行了打包并上传到PyPI,现在可以直接通过pip和easy_install来安装VASPy啦(同时欢迎使用VASP做计算化学的童鞋们加星和参与进来), 由于自己的 ...

  9. python解析器打包_打包发布Python模块的方法详解

    前言 昨天把自己的VASP文件处理库进行了打包并上传到PyPI,现在可以直接通过pip和easy_install来安装VASPy啦(同时欢迎使用VASP做计算化学的童鞋们加星和参与进来), 由于自己的 ...

最新文章

  1. 500万张图片,20万处地标风景,谷歌又放出大型数据集
  2. 免费的python课程-自学Python的10门免费课程,已学完
  3. CTFshow 反序列化 web257
  4. Python小白学习之函数装饰器
  5. Android 监听home键(android:launchMode=singleTask 与 onNewIntent(Intent intent) 的用法
  6. 操作系统学习笔记-02-操作系统的特征
  7. 成为中国特色项目经理,走上人生巅峰
  8. 构成网络的多台计算机其硬件配置必须相同吗,计算机省一级2014年-2016年章节试题(答案).docx...
  9. Lucene4:创建一个简单查询
  10. 运行CATIA2018主程序setup.exe时,报错setup:Problem with VC11 Runtime installation
  11. 数字化转型提出新要求 新华三IT基础架构如何随需而变?
  12. COPRA RF 2005_
  13. 海康SDK语音转发实现(ubuntu)
  14. 求点到线段的最短距离(QT)
  15. PHP Paypal支付+退款全流程
  16. 单方差分析MATLAB,MATLAB单因素方差分析.PDF
  17. 关于计算机体系结构-北桥和南桥
  18. 毕业一年来我的前端之路总结和谈谈大厂外包工作体验
  19. 业务的转型能让大象重新跳舞吗?
  20. 对扫描出的图片进行纠偏

热门文章

  1. java代码删除ElasticSearch索引
  2. 我想做产品,滴滴优步怎么优化
  3. 通过jquery 打开新窗口,
  4. CH2-开发工具DevEco Studio
  5. openlayers标注面要素
  6. java计算机毕业设计线上旅行信息管理系统源代码+数据库+系统+lw文档
  7. 李笑来:“我们不要过度乐观”
  8. 【帅琪达】git相关面试题目
  9. Alpine镜像中时区的设置
  10. 怎么修改linux系统时区,Linux如何修改系统时间和时区