往期推荐:
python基础语法(一)range函数


python基础语法(二)列表

  • 前言
  • 一、列表的创建与删除
  • 二、列表的查询操作
    • 1. 获取列表中指定元素的索引
    • 2. 获取列表中的单个元素
    • 3. 获取列表中的多个元素
    • 4. 列表元素的查询操作
  • 三、列表元素的增、删、改操作
    • 1. 列表元素的增加操作
    • 2. 列表元素的删除操作
    • 3. 列表元素的修改操作
  • 四、列表元素的排序
  • 五、列表生成式

前言

  • 变量可以存储一个元素,列表是一个大容器,可以存储N多个元素,方便对这些数据进行整体操作
  • 相当于其他语言中的数组
  • 变量存储的是一个对象的引用id

一、列表的创建与删除

列表需要使用中括号[],元素之间使用英文的逗号进行分隔
lst = [‘a’,‘b’]

列表的创建方式:

  • 使用中括号 lst = [‘a’,‘b’]
  • 调用内置函数lst() lst2 = lst([‘a’,‘b’])

列表的特点:

  • 列表元素按顺序有序排序
  • 索引映射唯一个数据
  • 列表可以存储重复数据
  • 任意数据类型混存
  • 根据需要动态分配和回收内存

列表索引顺序(7个元素为例):
从前往后:0~6
从后往前:-7~-1(采用负数)
即lst[0]与lst[-7]是同一个元素

二、列表的查询操作

1. 获取列表中指定元素的索引

index():

  • 如果查列表中存在N个相同元素,只返回相同元素中第一个元素的索引
  • 如果查询的元素在列表中不存在,则会抛出ValueError
  • 还可以在指定的start和stop之间进行查找

2. 获取列表中的单个元素

  • 正向索引从0到N-1
  • 逆向索引从-N到-1
  • 指定索引不存,抛出IndexError

代码如下(示例):

lst = ['hello', 'world', 'hello']print(lst.index('hello'))
# 输出结果 0print(lst.index('hello', 1, 4))
# 输出结果 2print(lst.index('hello', 0, 4))
# 输出结果 0

3. 获取列表中的多个元素

列表名[start:stop:step]:

  • 切片的结果:原列表片段的拷贝
  • 切片的范围:[start, stop)
  • step默认为1:简写为[start:stop]

step为正数(从start开始往后计算切片):

  • [:stop:step]切片的第一个元素默认是列表的第一个元素
  • [start::step]切片的最后一个元素默认是列表的最后一个元素

step为负数(从start开始往前计算切片):

  • [:stop:step]切片的第一个元素默认是列表的最后一个元素
  • [start::step]切片的最后一个元素默认是列表的第一个元素

代码如下(示例):

lst = [10,20,30,40,50,60,70,80]print(lst[1:6:1])
# 输出结果 20,30,40,50,60print(lst[1:6:2])
# 输出结果 20,40,60print(lst[:6:2])
# 输出结果 10,30,50print(lst[1::2])
# 输出结果 20,40,60,80print(lst[::-1])
# 输出结果 80,70,60,50,40,30,20,10print(lst[6:0:-2])
# 输出结果 70,50,30

4. 列表元素的查询操作

判断指定元素在列表中是否存在:

  • 元素 in 列表名
  • 元素 not in 列表名

列表元素的遍历:

  • for 迭代变量 in 列表名 :
    操作

三、列表元素的增、删、改操作

1. 列表元素的增加操作

列表元素的增加操作:

  • append():在列表的末尾添加一个元素
  • extend():在列表的末尾至少添加一个元素
  • insert():在列表的任意位置添加一个元素
  • 切片:在列表的任意位置添加至少一个元素
lst = [10,20,30]lst.append(100)
print(lst)
# 输出结果 [10, 20, 30, 100]lst2 = ['hello', 'world']
lst.extend(lst2)
print(lst)
# 输出结果 [10, 20, 30, 'hello', 'world']lst.insert(1, 90)
print(lst)
# 输出结果 [10, 90, 20, 30]lst3 = [True, False, 'hello']
lst[1:] = lst3
print(lst)
# 输出结果 [10, True, False, 'hello']
# 10后面直接被切掉替换成lst3

2. 列表元素的删除操作

列表元素的删除操作:

  • remove():一次删除一个元素;重复元素只删除第一个;元素不存在抛出ValueError
  • pop():删除一个指定索引位置上的元素;指定索引不存在抛出IndexError;不指定索引,删除列表中最后一个元素
  • 切片:一次至少删除一个元素
  • clear():清空列表,删除列表中的元素
  • del:删除列表,不是删除列表元素,是删除列表!
lst = [10, 20, 30, 40, 50, 60, 30]
lst.remove(30)
print(lst)
# 输出结果 [10, 20, 40, 50, 60, 30]lst.pop(1)
print(lst)
# 输出结果 [10, 30, 40, 50, 60, 30]lst.pop()
print(lst)
# 输出结果 [10, 20, 30, 40, 50, 60]
# 不写索引,默认删除最后一个元素new_lst = lst[1:3]
print('原列表', lst)
print('切片列表', new_lst)
# 输出结果
# 原列表 [10, 20, 30, 40, 50, 60, 30]
# 切片列表 [20, 30]lst = [10, 20, 30, 40, 50, 60, 30]
lst[1:3] = []
print('切片列表', lst)
# 输出结果
# 切片列表 [10, 40, 50, 60, 30]
# 不产生新的列表对象,删除原列表中的内容lst.clear()
print(lst)
# []del lst
print(lst)
# 输出结果 NameError: name 'lst' is not defined
# 列表被删除,不是列表元素被删除,是列表被删除!

3. 列表元素的修改操作

列表元素的修改操作:

  • 为指定索引的元素赋予一个新值
  • 为指定的切片赋予一个新值

指定索引:

lst = [10, 20, 30, 40, 50, 60, 30]
lst[2] = 100
print(lst)
# 输出结果 [10, 20, 100, 40, 50, 60, 30]

指定切片:

lst = [10, 20, 30, 40]
lst[1:3] = [300, 400, 500, 600]
print(lst)
# 输出结果 [10, 300, 400, 500, 600, 40]

四、列表元素的排序

列表元素的排序操作:

  • 调用sort()方法,列表中的所有元素默认按照从小到大的顺序进行排序,可以指定括号里面reverse = True,进行降序排序
  • 调用内置函数sorted(),可以指定reverse = True,进行降序排序,原列表不发生改变

调用sort():

lst = [20, 40, 10, 98, 54]
lst.sort()
print(lst)
# 输出结果 [10, 20, 40, 54, 98]lst.sort(reverse=True)
print(lst)
# 输出结果 [98, 54, 40, 20, 10]lst.sort(reverse=False)
print(lst)
# 输出结果 [10, 20, 40, 54, 98]

调用内置函数sorted():

lst = [20, 40, 10, 98, 54]
new_lst = sorted(lst)
print(lst)
print(new_lst)
# 输出结果 [20, 40, 10, 98, 54]
# 输出结果 [10, 20, 40, 54, 98]new_lst1 = sorted(lst, reverse=True)
print(lst)
print(new_lst1)
# 输出结果 [98, 54, 40, 20, 10]

五、列表生成式

语法格式:

  • [i*i for i in range(1, 10)]
  • i*i 表示列表元素的表达式
  • i 自定义变量
  • range(1, 10)可迭代对象

代码示例:

lst = [i for i in range(1, 10)]
print(lst)
# 输出结果 [1, 2, 3, 4, 5, 6, 7, 8, 9]lst = [i*2 for i in range(1, 10, 2)]
print(lst)
# 输出结果 [2, 6, 10, 14, 18]

python基础语法(二)列表相关推荐

  1. Python基础语法【列表】

    Python基础语法[列表] 一.认识列表 1.什么是列表(list) 1)列表是python提供的容器型数据类型:将[]作为容器的标志,里面多个元素用逗号隔开:[数据1,数据2,-] [数据1,数据 ...

  2. Python 基础语法(二)

    2. 元组 tuple和list十分相似,但是tuple是不可变的,即不能修改tuple,元组通过圆括号中用逗号分割的项定义:支持索引和切片操作:可以使用 in 查看一个元素是否在tuple中.空元组 ...

  3. 【python基础语法】列表的查询操作(包括切片)

    目录 列表 列表的创建[]或list() 定位列表中的元素L[0] 查询列表中元素索引L.index() 列表的切片操作L[start:stop:step] L[slice(start,stop,st ...

  4. python基础语法(一)

    Python的特点 1. 简单 Python是一种代表简单思想的语言. 2. 易学 Python有极其简单的语法. 3. 免费.开源 Python是FLOSS(自由/开放源码软件)之一. 4. 高层语 ...

  5. python基础语法复习[二] 函数、类

    python基础语法复习[二] 前言 一.函数 1.基本概念 2.一般实例 3.参数传递 (1)传不可变对象 (2)传可变对象 4.函数递归调用实例 (1)eg:实现字符串的反转: (2)递归思想画树 ...

  6. Python基础语法day02字符串详解和列表

    今天是python基础语法入门第二天,大概总共会有四天左右.四天后就是对于python的numpy库的详细文章.那话不多说,我们开始. 目录 字符串详解 字符串独有功能 检测头尾字符 判断输入结果是否 ...

  7. 从列表中切片最佳英雄组合,我的选择是亚索和李青——补充python基础语法有关数字类型和列表的知识

    本文继续补充个人对python基础语法的理解,这里主要讲数字类型和列表~ 目前还不算初级程序员把,但是一洗头就掉头发,现在都不敢洗头了~ 数字类型 python中的数字类型:int(整型).float ...

  8. python基础数据类型之列表,元组(基础二)

    第四章 python基础数据类型之列表,元组(基础二) python常用数据类型之组合数据类型:列表,元组. 4.1 列表 list 列表介绍 列表是python的基础数据类型之⼀ ,其他编程语⾔言也 ...

  9. Python基础数据之列表知识(二)

    Python基础数据之列表知识(二) 一.列表的特点 二.列表的排序 三.列表的嵌套 1.嵌套的基本使用 2.嵌套的示例 四.列表的循环删除 五.列表相关知识链接 一.列表的特点 1.有序 2.独立 ...

最新文章

  1. 【转载】C#编码标准━━项目设置和项目结构
  2. leetcode Number of 1 Bits
  3. php数组根据指定列排序
  4. SpringBoot项目打war包部署Tomcat教程
  5. sqli-lab————Writeup(18~20)各种头部注入
  6. 为什么我加了过滤器然后就登不进去了_布隆过滤器过时了,未来属于布谷鸟过滤器?...
  7. unity android 版本,Unity2019与Android混合开发
  8. vector用法 java equals_java泛型vector的用法 | 学步园
  9. 谈谈服务器虚拟化解决方案
  10. 微信公众平台注册流程
  11. 【Front Plant Sci】LvMYB5 和 LvMYB1转录因子调控百合花青素合成
  12. C++:error 2048:函数*****已有主体
  13. PCB多层板每层厚度及材质
  14. MATLAB 2016b--神经网络工具箱中BP网络的实现
  15. 搜索引擎 百度 高级搜索
  16. 智能指针(三):weak_ptr浅析
  17. 品牌如何开展饥饿营销?
  18. python语言关键字的是_不属于Python语言关键字的是( )
  19. 日常编程笔记 | 2022.10.1 | 归并排序_一无序列
  20. 对接百度OCR发票识别功能

热门文章

  1. 安装MPlayer播放器(号称Linux中的万能播放器)
  2. (4.7-4.13)【大数据新闻速递】上海、广州、青海、贵阳大力发展大数据产业;2026年中国大数据市场规模预计达365亿美元
  3. 【快速幂】HRBUST 2263 萝莉控型提督
  4. DRA777PSIGACDRQ1/DRA773PSGACDRQ1/DRA776PPIGACDRQ1【汽车应用处理器】
  5. 编译支持TBB的opencv4.1.0、4.5.2及TBB的使用
  6. ReentrantReadWriteLock原理与使用
  7. 售后退款的java代码_SpringBoot 微信退款功能的示例代码
  8. UVa OJ 11121
  9. 如何免费将PDF转成PPT
  10. symfony2中一维码和二维码使用