Python 03 列表和元组

3.1 列表和元组

配套的 Python 教学视频


3.1.1 列表

列表就是可以一次性存储多个数据,且可以存储不同数据类型的 一个容器类型。

格式:变量名 = [数据1,数据2,数据3,……]

但一般 我们存储多个数据的时候,都存储 同一个类型的。因为这样才不会给我们自己找麻烦。

列表的常用操作(增删改查)

①查

取元素内容

直接 变量名[下标] 即可。(下标 都是从0 开始计数的)

或者我们可以用 切片 序列[开始下标,终止下标,步长]

取元素对应的下标位置

可以用方法 index 变量名.index(数据内容,开始下标,终止下标) 如果找不到就会报错。

取该内容出现的次数

可以用 count 变量名.count(数据内容) 这个方法 直接可以解决 在一个序列里 查某一个相同 数据内容的 个数。

取整个列表的长度,即 元素的个数

可以用 len len(变量名) 即可。类似于 id(变量名) 可以取出 地址。
在这里插入图片描述

②增

在列表的末尾直接追加单个数据

可以用 append 变量名.append(数据)

在列表的末尾直接追加多个数据即 追加一个列表

可以用 extend 变量名.extend(数据or列表)

在指定的位置新增数据,只能新增一个

可以用 insert 变量名.insert(位置下标,数据)
在这里插入图片描述在这里插入图片描述

③删

可以删除整个列表,也可以删除某个元素。这个操作符 很好。

这个方法就是 del 变量名 删除整个列表

del 变量名[下标] 删除某个元素

有一个方法 也可以删除 指定元素,我们一般也用这个 方法来删除指定的下标元素。

变量名.pop(下标) 删除列表中 指定下标的元素。但它还会返回这个被删除的数据。

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

删除列表的第一个匹配 提供的数据内容的元素。

remove 变量名.remove(数据内容) 根据数据内容 直接删除 第一个匹配的元素。

清空列表

变量名.clear() 清空列表,返回结果 [] 空列表

④改

根据下标 找到的元素,直接进行 赋值修改。

变量名[下标] = 修改后的数据内容

把整个列表倒序过来

变量名.reverse() 就把 整个列表倒序过来了。

把列表 进行一个排序,默认是 升序的。

变量名.sort(reverse=False) 就是升序的排序

变量名.sort(reverse=True) 就是降序的排序

列表也可以被 复制下来,也就是有一个 克隆体。

变量名.copy() 代表着 该列表的克隆体。可以直接赋值给 其它变量。


3.1.2 遍历列表和列表嵌套

所谓遍历 就是一一把元素全部列出来。

那么这个时候我们要介绍第一个 接触的 流程控制语句 For-Each。

在Python 里面 For-Each 是 for 临时变量 in 列表: 这样的格式展现的。

for 这个语句 可以理解为 循环的不停的 做一个事情!当然 如果你想让它 做固定的 次数,也可以 用一些条件来限制它。也就是说 它 到底做这个事情 多少次 也取决我们 提供的 限制条件。

for 临时变量 in 列表:
	print(临时变量)

在这里插入图片描述
这个 临时变量 可以理解为 我们顺次 列出 每个元素的一个临时容器。
比如说 我 列出第一个元素,那么第一个元素 就会被 存储到 这个临时容器里。即 临时容器 现在的 值 也就是 第一个元素的值。这样我们 每次 都输出 这个 临时变量 就可以达到 遍历输出的效果。

列表嵌套:就是一个列表里 的各个元素可能还是一个列表。我们也可以理解为 套娃行为。

比如说:

二维列表 = [[1,2,3],[4,5,6],[7,8,9]]

那么 我们发现 在最外层的列表 的 第一个元素也是一个列表。而这个列表 有三个元素,分别是 1 2 3。

此时如果我们想 取出 1 这个数字,就需要告诉计算机,我们要 取 外层列表的 第一个元素,而第一个元素还是一个列表,我们还要在这个列表里取第一个元素。

翻译成 代码就是:二位列表[0][0]在这里插入图片描述
所以按照 我们正常人的思维,这个列表的嵌套 也就是这样而已。


3.1.3 元组

存储多个数据的 容器已经有了,叫做列表。为什么还要有元组呢?

原因在于,如果我们不想让用户修改里面的数据的话。列表就不能办到了。即 变量 的对立面 是 常量,那么为什么列表没有 对立面呢?我们就干脆设计一个 叫做 元组 的东西,作为它的对立面。

元组:不能被修改的列表!

应用:比如 你存储的是一个 非常重要的信息,身份证号吧。那这个东西能让你改吗。基本上就是写死的。所以 元组就起到了作用。

格式:变量名 = (数据1,数据2,……)

元组:只能读,不能写,只能查询,不能修改。

元组比较 注意的事项:这个即使是 多年用 python 的 老玩家都可能忘记。

a = (1)  如果你这样定义一个元组,编辑器的代码分析器,会认为 你这个东西就是 
变量 a = 1 因为这个小括号 还有其它的意思,不一定是元组,而且 小括号的提高优先级能力的优先级是比 小括号作为 元组标识 高的。
所以 a = (1) 就会被当作 int 类型变量 a 被 赋值为1。即不是元组!!!

那么怎么办呢?

a = (1,) 我们就非得 告诉 代码分析器,我这个 小括号 是元组的标识,
因为里面有 一个 逗号。只有 元组的小括号 里面才能有 逗号。
所以 这样定义的话,单个数据内容,也会被定义为元组了。

在这里插入图片描述
如果 元组 非得要 改 里面的数据的话。那么就 得用 切片了。
在这里插入图片描述
如果直接进行修改是会报错的,不会让你修改的。但是 如果非要修改,也有方法!就是利用切片 把元组的 某些内容获取下来,然后 再和你想要 改的那部分内容 相结合,把 元组整体 重新赋值 就可以 实现 修改!

在这里插入图片描述

一定要切记呀!!! 实际上 这种行为不叫作 修改,而是给元组 重新的 赋值。 python 不允许重新给元组的元素赋值,但并没有说 不能重新给元组这个整体这个本身 重新赋值。所以 我们抓到 这个漏洞 就可以实现 伪修改!

这也代表着,列表和元组 是可以 相互转换的。

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值