Python学习之列表和元组的使用详解

目录
  • 列表和元组简介
  • 列表学习要点
    • 列表的声明语法
    • 列表的读取
    • 列表操作
    • 列表元素的修改和删除
    • 列表元素合并
    • 列表元素顺序变化
  • 元组学习要点
    • 元组基本知识
    • 元组的基本操作

列表和元组简介

如果说在 Python 语言中找一个最优秀的数据类型,那无疑是列表,如果要在推荐一个,那我选择元组,本篇博客我们的重心会放在列表上,元组可以看成不能被修改的列表,所以作为赠品 进行学习即可。

列表是一种非常灵活的数据结构,可以弥补前文字符串类型的很多不足。

正式学习前,还需要记住两个英文单词,列表(list),元组 (tuple)。

列表学习要点

先看一遍列表定义:

列表是可变序列,也是一种可存储任意数据类型的容器,用中括号([])表示开始和结束,内部各元素使用英文逗号(,)分隔,每个元素都可称为项目,并且每个元素都有一个索引,也被称为下标。

列表的声明语法

声明一个列表,可以参考下述几种格式。

使用空中括号 [] 声明一个空列表

my_list = []
print(my_list)

声明包含一个元素的列表

my_list = [1]
print(my_list)

声明包含多个元素的列表

my_list = [1,2]
print(my_list)

声明包含多个不同数据类型元素的列表

my_list = [1,'a',True]
print(my_list)

声明一个列表中包含列表

my_list = [1,['a'],[True,1,1]]
print(my_list)

列表的读取

读取列表中最重要的概念是下标,也叫做位置或者索引。下标从 0 开始计数,即列表内第一项元素的索引是 0,例如下述代码,读取数字 2。

my_list = [1,2,3,4,5]
print(my_list[1]) # 数字2所在的下标为1

列表操作

列表是一个动态容器,其支持对其元素的增加,删除,修改,查询,合并等操作,用到的都是字典对象的方法,基本操作的方法名如下所示:

  • append():末尾追加元素;
  • extend():末尾追加列表,也可以理解为两个列表合并;
  • insert():在指定位置插入元素;
  • copy():列表复制;
  • clear():清空列表;
  • count():统计列表指定元素个数;
  • pop():删除并返回指定下标对应的元素;
  • remove():删除列表中指定元素;
  • index():获取指定元素的下标;
  • reverse():反转元素;
  • sort():对列表元素进行排序。

列表元素添加方法

从上述清单中,可以查看到列表追加元素,有两种办法可以实现,其一是使用 append() 方法,其二是使用 insert() 方法,示例代码如下所示:

my_list = [1,2,3,4,5]
my_list.append(888)
my_list.insert(1,666)
print(my_list)

对比一下上述两个方法的差异,可以看到 append() 仅能在里列表末尾追加元素,而 insert() 方法可以在任意位置插入元素,即 insert() 方法的第一个参数为索引,表示插入位置。

列表元素查找方法

在列表中查找某一元素,使用 index() 方法实现,该方法的语法格式如下所示:

my_list.index(value,[start[,stop]])

其中 my_list 是待查找目标列表,value 表示待查找的值,startstop 为可选参数,表示开始查找的索引值和结束查找的索引值,该方法当查找到元素后,会返回第一个找到的元素索引位置,例如下述代码,会返回 3

my_list = [1,2,3,4,5]
ret = my_list.index(4)
print(ret)

如果该方法没有在目标列表中找到元素,会报错,错误类型为 ValueError

index() 方法外,列表的读取其实也是元素查找方式,例如读取下标 2 的元素,代码如下:

my_list = [1,2,3,4,5]
ret = my_list[2]
print(ret)

还可以使用成员运算符 in,对列表进行判断,关于成员操作符的更多知识,后期总结运算符的时候,会详细说明。以下代码会返回 True,即表示数字 2 在列表中。

my_list = [1,2,3,4,5]
ret = 2 in my_list
print(ret)

在列表中还有一个重要知识点,即列表切片,学习该知识点需要先牢牢掌握列表按索引读取相关语法,切片的语法格式如下:

my_list = [1,2,3,4,5]
ret = my_list[1:3:2]
print(ret)

可以看到上述第二行代码,在原列表读取的规则之上,格式变为了 [1:3:2],将其转换为中文语法说明如下所示:

my_list[起始索引:结束索引:步长]

使用切片的时候,英文冒号不能缺少,起始索引为必选项,结束索引和步长为可选项。

如果理解困难,最好的办法就是反复用代码校验。

# 缺省结束索引,默认获取到列表结尾元素
my_list = [1,2,3,4,5,6,7,8,9,10]
ret = my_list[1:]
print(ret) # 输出 [2, 3, 4, 5, 6, 7, 8, 9, 10]

# 缺少步长,默认按照索引+1解决,同时不包含结束索引代表的元素
my_list = [1,2,3,4,5,6,7,8,9,10]
ret = my_list[1:5]
print(ret) # 输出 [2, 3, 4, 5]

# 步长设置为2,表示索引每次+2
my_list = [1,2,3,4,5,6,7,8,9,10]
ret = my_list[1:6:2]
print(ret) # 输出 [2, 4, 6]

上述代码如何理解已经在注释中进行说明,重点要掌握的切片知识点整理如下:

一首打油诗送给大家~

切片不能丢冒号 结束步长可不要 默认索引都加一 左闭右开要牢记

列表元素的修改和删除

前文已经掌握了列表的读取,将读取到的元素重新赋值就是列表的修改,例如下述代码。

my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
print(my_list)

列表元素删除 在 Python 中,提出了多种列表元素删除的方式,本小节学习三个列表元素删除的方法,即 clear()pop()remove(),除此之外还可以使用 del() 函数对列表元素进行删除。

my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
my_list.clear() # 列表清空
print(my_list)

使用 pop() 方法删除列表元素,默认从尾部删除,并返回被删除的元素。

my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
ret = my_list.pop()
print(my_list) # 删除最后一项
print(ret) # 返回被删除的元素

pop() 方法中可以传递一个 index 值,该值表示下标值,即删除指定位置的元素,与之对应的是 remove() 方法的参数,该值表示待删除的目标元素,例如在列表中删除元素 5,使用的代码如下:

my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
ret = my_list.remove(5)
print(my_list)
print(ret)

测试之后,可以发现 remove() 方法无返回值,并且该方法只删除第一个匹配到的元素,也就是当列表中有多个目标元素时,只有最先匹配到的元素被删除。

del() 函数可以删除列表中指定元素,也可以直接删除列表对象,代码如下:

# 删除索引位置为5的元素
my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
del(my_list[5])
print(my_list)

# 删除整个列表对象
my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
del my_list
print(my_list)

列表元素合并

使用 extend() 方法可以将列表进行合并:

my_list1 = [1,2,3]
my_list2 = [666,777,888]
my_list1.extend([666,777,888])
print(my_list1)

注意 extend() 方法不会生成新的列表。

列表合并也可以使用加号(+) 实现,该语法会产生一个新的列表。

my_list1 = [1,2,3]
my_list2 = [666,777,888]
my_list = my_list1 + my_list2
print(my_list)

列表元素顺序变化

列表排序用到的方法是 sort(),该方法默认按照 ASCII 进行增序或者减序排列,测试代码如下所示:

my_list = [4,1,2,6,7,3,8,12,10]
my_list.sort()
print(my_list)

sort() 方法中也有 2 个参数,格式如下:

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

参数 key 为可选参数,可以传入一个函数名,该函数会作用与列表中的每一项元素,例如将列表中每一项元素都转换为小写字母。

my_list = ['ABC','CDS','Juejin','YUE']
my_list.sort(key=str.lower)
print(my_list)

sort() 方法会对原列表进行排序,如果想生成一个新列表,可以使用 sorted() 函数,代码如下:

my_list = ['ABC','CDS','Juejin','YUE']
ret = sorted(my_list)
print(ret)

除此之外,还可以使用 reverse() 方法。

my_list = ['ABC','CDS','Juejin','YUE']
my_list.reverse()
print(my_list)

元组学习要点

元组定义与列表基本一致,只需要做好如下区分即可。

  • 元组不能对其包含的元素进行修改,即元组不可变;
  • 元组用小括号(())表示。

再次进行简单总结:

元组是不可变序列,也是可以包含任意数据类型的容器,用小括号(())表示,元素之间用逗号(,)分隔 。一定要注意的就是不可变序列,不可变的含义是不能对元组进行增加,修改,删除,位置变换等操作。

元组基本知识

声明一个元组

my_tuple = ()
print(my_tuple)
print(type(my_tuple))

声明一个只包含 1 个值的元组,要求必须带一个逗号,否则会按照整数处理。

my_tuple = (1,)
print(my_tuple)
print(type(my_tuple))

声明包含多个值的元组:

my_tuple = (1,2,3,4,5,6,[1])
print(my_tuple)
print(type(my_tuple))

元组的基本操作

由于元组对象的方法使用与列表一致,接下来仅对元组进行罗列。

  • count():统计元组中元素个数;
  • index():返回指定元素的下标。

其余可作用于元组的内置函数如下所示:

  • len():获取元组元素个数;
  • max():返回元组中最大值;
  • min():返回最小值;
  • tuple():将列表转换为元组;
  • type():返回对象类型;
  • del():删除整个元组对象,注意不能删除元组内元素;
  • sum():求和。

以上就是Python学习之列表和元组的使用详解的详细内容,更多关于Python列表 元组的资料请关注我们其它相关文章!

(0)

相关推荐

  • python列表[list]和元组(tuple)详情

    列表和元组: list是一种有序的集合,可以随时添加和删除其中的元素.1,创建一个普通列表 List = ['Jack','Bob','Lucy','Rose'] Append() 末尾追加元素 conunt()列表中某个元素的数量 extend()可以在列表尾部追加包含多个值的另一个序列,而list的append()只能添加一个值. 可以说list的extend方法是有扩展列表的作用: list1 = [1,2,3] list2 = [7,8,9] list1.extend(list2) pr

  • Python的列表和元组详情

    目录 一.Python 列表(list) 1.序列介绍 2.列表的概述 3.创建列表 4.列表的索引 5.列表的分片 6.列表的分片赋值 7.循环遍历列表 8.查找元素与计数 9.列表增加元素 10.列表删除元素 11.列表排序 二. Python 元组(tuple) 1.为什么要将元组设计成为不可变序列 2.创建元组 3.元组的遍历 4.元组的内置函数 一.Python 列表(list) 1.序列介绍 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,

  • Python入门:认识列表和元组

    目录 列表的特性 元组的特性 两者支持的操作 负数索引 切片操作 随意嵌套 相互转换 常用内置函数 存储方式的差异 性能对比 两者的使用场景 总结 提问:两个创建空列表的方法,哪个更快. 列表和元组,都是一个可以放置任何数据类型的有序集合. 列表的特性 动态的(mutable):长度大小不固定,可以随意地增加.删减或者改变元素. 会修改原来列表中的元素,而不会创建新的列表. # 新建一个列表 l = [1, 2, 'hello', 'world'] # 输出列表 l # 显示内容 [1, 2,

  • Python使用list列表和tuple元组的方法

    list: Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出寝室所有室友的名字,就可以用一个list表示: roomie = ['xzl','xsy','pp'] len(roomie) 用len()函数可以获得list元素的个数: 用索引来访问list中每一个位置的元素,记得索引和数组一样是从0开始的: 当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界. 值得注意的是:如果要取最后一个

  • Python数据结构之列表与元组详解

    目录 Python 列表(list): 1.序列介绍: 2.列表的概述: 3.创建一个列表 4.列表的索引 5.列表的分片 6.列表的分片赋值 7.循环遍历列表 8.查找元素与计数 9.列表增加元素: 10.列表删除元素: 11.列表排序 Python 元组(tuple): 1.为什么要将元组设计成为不可变序列 2.创建元组 3.元组的遍历 4.元组的内置函数 Python 列表(list): 1.序列介绍:   序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置

  • python 元组和列表的区别

    静态数据类型 静态数据类型是指不可以对该数据类型进行修改,即只读的数据类型.迄今为止学过的静态数据类型有字符串,元组. 在使用[]操作符对字符串,元组进行修改时,Python会抛出类型错误的异常信息,我们可以在交互模式中进行验证: >>> content = "static data type" >>> content[0]=S Traceback (most recent call last):  File "<stdin>&

  • python中的列表和元组区别分析

    列表(list)和元组(tuple)的一些基础 list和tuple都是一个可以放置任意数据类型的有序集合,都是既可以存放数字.字符串.对象等 list和tuple都支持负索引 In [8]: nums[-2] Out[8]: 'ad' In [9]: tp[-2] Out[9]: '33' list和tuple都支持切片操作 In [10]: nums[1:3] Out[10]: [3, 'ad'] In [11]: tp[1:3] Out[11]: (3, '33') list和tuple都

  • Python学习之列表和元组的使用详解

    目录 列表和元组简介 列表学习要点 列表的声明语法 列表的读取 列表操作 列表元素的修改和删除 列表元素合并 列表元素顺序变化 元组学习要点 元组基本知识 元组的基本操作 列表和元组简介 如果说在 Python 语言中找一个最优秀的数据类型,那无疑是列表,如果要在推荐一个,那我选择元组,本篇博客我们的重心会放在列表上,元组可以看成不能被修改的列表,所以作为赠品 进行学习即可. 列表是一种非常灵活的数据结构,可以弥补前文字符串类型的很多不足. 正式学习前,还需要记住两个英文单词,列表(list),

  • Python学习之函数的定义与使用详解

    目录 函数的定义 函数的分类 函数的创建方法-def 函数的返回值-return return与print的区别 函数的传参 必传参数 默认参数 不确定参数(可变参数) 参数规则 函数小练习 函数的参数类型定义 全局变量与局部变量 全局变量 局部变量 global关键字 递归函数 递归函数的定义方法 递归函数的说明 lambda-匿名函数 函数练习 函数的定义 什么是函数? — > 函数是具有某种特定功能的代码块,可以重复使用(在前面数据类型相关章节,其实已经出现了很多 Python 内置函数了

  • Python学习之12个常用基础语法详解

    目录 前言 1.多个字符串组合为一个字符串 2.字符串拆分为子字符串列表 3.统计列表中元素的次数 4.使用try-except-else-block模块 5.使用枚举函数得到key/value对 6.检查对象的内存使用情况 7.合并字典 8.计算执行一段代码所花费的时间 9.列表展开 10.列表采样 11.数字化 12.检查列表元素的唯一性 前言 前几天写了一篇关于python高级语法的文章:python进阶从青铜到王者一定会用上的Python技巧. 有读者私信说:怎么看自己是不是入门pyth

  • Python学习之文件的创建与写入详解

    目录 内置函数 - open 获取文件对象 open() 函数 利用文件对象进行创建与写入 文件操作的写入模式 文件对象的写入操作方法 实战小案例 在前面章节我们通过 os包学习了如何创建.读取一个文件夹,但是并没有学习如何创建.读写一个文件,接下来我们就学习关于文件的处理.当我们学习完文件处理之后,就可以随意读写文件. 内置函数 - open 获取文件对象 open() 函数 open()函数是是python的读写文件的基本函数,它可以生成文件对象可以创建,也可以操作文件的读写. 用法: op

  • Python学习之魔法函数(filter,map,reduce)详解

    目录 filter() 函数 map() 函数 reduce() 函数 filter() 函数 小实战 今天的这一章节我们来学习一下,Python 中的三个高级函数,也被称之为 魔法函数.之所以把他们交的这么高级,主要是因为它们返回的数据类型多数是 迭代器. 我们在上一章节有介绍过,迭代器 可以提升我们的代码的执行效率.降低内存消耗.所以接下来我们就认识一下这些 魔法函数. filter() 函数 filter() 函数 是python的一个内置函数. filter() 函数的功能:可以将一个可

  • Python学习之路安装pycharm的教程详解

    简介:pycharm 是一款功能强大的 Python 编辑器,具有跨平台性.下载地址 第一步:下载pycharm 软件 下载时会有两个版本供选择.Professional版(专业版)和Community版(社区版).建议安装Community版本,因为免费使用. 第二步:安装pycharm软件 1.找到下载的 .exe文件,双击运行安装.建议修改安装位置,软件不要总是安装在默认C盘,如下,我选择E盘. 2.接下来 3.接下来 4.Install 然后就是静静的等待安装了.如果我们之前没有下载有P

  • Python学习之异常中的finally使用详解

    目录 finally的功能与用法 finally示例案例 finally触发的必然性与优先级 try语法伴随except或finally的必然性 finally的历史 今天我们来学习一下 异常语法 中的另一个成员 —> finally : 通过学习 finally ,可以帮助我们更好的处理异常. finally 的功能与用法 finally 的功能:finally的是最后的意思,配合异常的语法来说,它就是最后执行的代码块. 无论是否发生了异常,一定会执行 finally 的代码块 在函数中,即便

  • Python基础之列表常见操作经典实例详解

    本文实例讲述了Python基础之列表常见操作.分享给大家供大家参考,具体如下: Python中的列表操作 列表是Python中使用最频繁的数据类型[可以说没有之一] 一组有序项目的集合 可变的数据类型[可进行增删改查] 列表中可以包含任何数据类型,也可包含另一个列表[可任意组合嵌套] 列表是以方括号" []"包围的数据集合,不同成员以" ,"分隔 列表可通过序号访问其中成员 创建列表的方式 #创建一个含有元素1,2,4,8,16,32的列表 #方法1 L = [1,

  • Python列表与元组的异同详解

    前言 "列表(list)与元组(tuple)两种数据类型有哪些区别"这个问题在初级程序员面试中经常碰到,超出面试官预期的答案往往能加不少印象分,也会给后续面试顺利进行提供一定帮助,这道题主要考察候选人对Python基本数据结构的掌握程度,属于简单类型的送分题,那么该如何来回答才不至于丢分? 相同点:都是序列类型 回答它们的区别之前,先来说说两者有什么相同之处.list 与 tuple 都是序列类型的容器对象,可以存放任何类型的数据.支持切片.迭代等操作 >>> foo

  • python学习笔记:字典的使用示例详解

    经典字典使用函数dict:通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典.当然dict成为函数不是十分确切,它本质是一种类型.如同list. 复制代码 代码如下: items=[('name','zhang'),('age',42)]d=dict(items)d['name'] len(d):返回项的数量d[k]:返回键k上面的值.d[k]=v:将k对应的值设置为k.del d[k]:删除字典中的这一项.k in d:检查d中是否含有键为k的项.注:只能查找键,不能查找值.简单的

随机推荐