Self-study Python Fish-C Note-4 P20-P26 (part1)

2023-10-26

python 中的列表 Part 1

本文主要讲解了python中列表的使用
本文为自学B站上鱼C的python课程随手做的笔记。
如有问题,欢迎大家批评指正
原视频链接:https://www.bilibili.com/video/BV1c4411e77t?p=8
原视频内分享的鱼C论坛上的文章(讲解列表的各种操作方法):https://fishc.com.cn/member.php?mod=logging&action=login&mobile=2 (需注册)


提示:以下是本篇文章正文内容,下面案例可供参考

一、列表的创建、索引、切片

a. 创建列表

创建列表:只需要用中括弧将所有想要列表包含的元素给包裹起来,不同元素之间用逗号隔开。代码如下(示例):

list = [1,2,3,'OK'] #列表可以兼收不同种的数据类型,这个列表就包含了整数和字符串。
list = [] #创建空列表

NB:(1)和字符串一样,列表也是一个序列(列表也可以迭代),可以和for循环一起用。

b. 列表索引

下标索引:方括弧里面是要索引的元素下标,list[n]。

  1. 从前向后:是从0开始,第一个元素是0,第二个元素是1。
list = [1,2,3,'OK']
list[1]
运行结果:
2

2.从后向前:是从-1开始,倒数第一个元素是-1,依次向前-2,-3……。
list[-1] 即 list[len(list)-1]

list[-2]
运行结果:
3
元素 1 2 3 “OK”
下标(正向) 0 1 2 3
下标(反向) -4 -3 -2 -1

c. 列表切片

方括弧里面是要切片的范围,范围要用:表示,list[n:m]。注意不包括右边的m
注意:
(1)list[n:m] 输出结果是下标为n到(m-1)之间的元素,不包括右边的m。换句话说list[n:m]是输出list中第n+1到第m个的元素。
(2)范围之间是用冒号 :来表示
常用的各种切片方式代码示例:
请添加图片描述

二、列表的操作(增/删/改/查)

1.增

(1)append():在列表的末尾来添加一个指定元素
代码如下(示例):
请添加图片描述
(2)extend(): 允许直接添加一个可迭代对象。
注意:extend()方法参数必须是一个可迭代对象,新的内容是追加到原列表最后一个元素后面。
代码如下(承接append里面的例子):
请添加图片描述
(3)是用切片来添加元素:

list[len(list):] = [追加的元素列表]

示例:
请添加图片描述
(4)在列表任意位置添加元素:insert()

# 两个参数
insert(待插入的位置, 待插入的元素)

示例:
请添加图片描述

2. 删

(1)remove():将指定元素删除
注意:
<1>. 如果列表中存在多个匹配的元素,那么它只会删除第一个。
<2>. 如果指定元素不存在,那么程序就会报错。
代码如下(示例):
请添加图片描述

(2)pop() 删除某个位置上的元素,参数为元素的下标索引值。
请添加图片描述
(3) clear() 清空列表

list = [1,2,3]
list.clear()
list
输出结果:
[]

3. 改

(1)用索引和切片来改动
请添加图片描述
切片改动的原理是分两步实现的:
step one:将赋值号=左边特定的内容删除
step two:将包含在赋值号=右边的可迭代对象中的片段插入左边被删除的位置。
(2)sort()

list.sort(key = None, reverse = False) 
key参数指定一个用于比较的函数;reverse参数用于指定排序结果是否反转

请添加图片描述
(3)reverse()原地反转列表中的元素(第一个与最后一个互换,第二个与倒数第二个互换,第三个与倒数第三个互换,……)
请添加图片描述

4. 查

(1)count(x):查某个元素在列表中出现的次数
用法:

list.count(x):返回x元素在列表list中出现的次数

示例 :

nums = [9,8,5,3,3,3]
nums.counts(3)
运行结果:
3

(2) index(x):查某个元素在列表中对应的的索引值
用法:

list.index(x, start, end) 
返回x元素位于list列表的索引值,如果有多个匹配元素就返回第一个找到的索引值(start和end可选,指定开始和结束位置,不过返回的索引值仍然是以序列开始位置计算的);如果找不到,则返回ValueError异常

示例 :
请添加图片描述
(3)copy() 用于浅拷贝一个列表

list.copy() 返回list列表的一个浅拷贝,相当于list[:]

示例 :

list_copy = list.copy()
等同于:
list_copy = list[:]

注意:不要使用 list_copy = list 来妄图拷贝列表,具体原因,以及深拷贝和浅拷贝的区别见 列表Part2 的笔记

三. 列表的加法和乘法(concatenation and multiplication of list)

a. 列表的加法 (拼接)

示例 :
请添加图片描述

b. 列表的乘法(重复列表里面所有内容若干次)

示例 :
请添加图片描述
注意:一维列表A*n得到n维列表时,实际是对列表A的多次引用,即如果被引用的原来的列表(A)里的元素改动,其他维度里都会发生相同的变化
python官方文档的强调:
请添加图片描述
(具体详见 列表Part2 的笔记)

四. 嵌套列表(nested list)

即在列表里面嵌入列表

1. 生成嵌套列表

生成一个二维列表:请添加图片描述
使用 for 循环来创建嵌套列表:
请添加图片描述

2. 访问嵌套列表 (access nested list)

(1)使用嵌套循环来访问嵌套列表:
请添加图片描述
(2)通过下标索引来访问嵌套列表
代码如下(示例):
请添加图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Self-study Python Fish-C Note-4 P20-P26 (part1) 的相关文章

随机推荐

  • 微信小程序:环形进度条模块

    利用canvas实现微信小程序环形进度条模块 模块下载链接 下载链接 最近开发一款背单词的微信小程序 计划使用环形进度条展示每日背单词进度 效果图如下 可渐变颜色 开发步骤 1 在根目录创建名为components的文件夹 用来放需要引用的
  • java链式编程/级联式编程

    链式编程 也叫级联式编程 调用对象的函数时返回一个this对象指向对象本身 达到链式效果 可以级联调用 链式编程 通过高阶函数以点为连接将多个函数连接在一起完成参数传递和复杂的操作 通俗的说是通过点号 链接在一起成为一句代码 链式编程的优点
  • sqli-labs-less-1完整解析,小白干货

    Less 1 Sql知识点 Limit x y 从x 1行开始输出 共输出y行 Order by 排序 asc升序 默认 desc 降序 Union MySQL执行两条SELECT语句 并把输出组合成单个查询结果集 Group concat
  • Java后端返回前端的日期差9小时?

    当后端返回Date类型到前端的时候 需要在实体中增加 JsonFormat注释 这个可以帮我们处理格式化 很多人都是用下面这种写法 JsonFormat locale zh timezone GMT 8 pattern yyyy MM dd
  • win10蓝牙已配对连接不上_Win10系统蓝牙配对手机连接不成功的解决方法

    Win10系统蓝牙配对手机连接不成功的解决方法 很多的Win10用户都在使用蓝牙连接手机 一些网友在连接时出现win10系统蓝牙已配对但连接不成功 出现在这样的问题怎么解决呢 下面我们来看看Win10镜像官网给大家带来的解决方法 Win10
  • 封装,继承和多态详解

    封装 继承和多态是 C 中三个重要的面向对象编程技术 本文将详细介绍这些技术的概念 原理和用法 以帮助读者更好地理解并应用它们 一 封装 封装是一种面向对象编程的基本概念 它指的是将数据和方法封装在一个对象内部 防止外部通过对象的公共接口直
  • 一文看懂IC芯片生产流程:从设计到制造与封装

    origin http forum esm cn com FORUM POST 1000163993 1201257744 0 HTM ga 1 101949507 338942905 1436813394 芯片制造的过程就如同用乐高盖房子
  • 深度学习和因果如何结合?北交最新《深度因果模型》综述论文,31页pdf涵盖216篇文献详述41个深度因果模型...

    来源 专知 北京交通大学最新 深度因果模型 综述论文 31页pdf涵盖216页pdf详述41个深度因果模型 值得关注 因果关系概念在人类认知中起着重要作用 在过去的几十年里 因果推理在计算机科学 医学 经济学和教育等许多领域都得到了很好的发
  • 关于504报错的解决方法之一

    项目场景 记录一些工作遇见的bug 项目场景 使用命令 npm start 运行代码打开网页 报504 打开失败 问题描述 提示 这里描述项目中遇到的问题 使用命令 npm start 运行代码打开网页 报504 打开失败 原因分析 504
  • 运行java程序报java/lang/NoClassDefFoundError: java/lang/Object

    今天直接将解压后的jre文件放到linux上 执行java命令 报如下错误 Error occurred during initialization of VM java lang NoClassDefFoundError java lan
  • 【头歌】Hadoop开发环境搭建

    本来不想写这个了 就为了搞这实验截图 又得敲一遍这个代码 代码量真的大 我真的是吐了呀 MD 大家反正写过 直接粘贴是最佳选择 没必要自己再做一遍 第1关 配置开发环境 JavaJDK的配置 任务描述 本关任务 配置 JavaJDK 相关知
  • Cadence Allegro 17.4学习记录开始00

    目录 Cadence Allegro 17 4学习记录绪论 第一 先来说说Cadence Allegro 17 4的原因 第二 简单介绍这个EDA软件Cadence Allegro 17 4 第三 学习规划 1 Cadence Allegr
  • java ssh项目 定时任务时,jdbc线程池耗尽问题

    场景 在ssh项目中 用spring自带的schedule创建了个定时任务 服务启动时自动调用任务 在任务执行一段时间后 报了 xxx active 150 maxActive 150错误 原因 spring自带的schedule创建的定时
  • 前端面试题精心整理(一)-TypeScript

    文章目录 TypeScript相关问题及知识点 Q1 ts中type和interface的区别 A1 有相同点与不同点 具体内容如下 Q2 ts中interface和class的区别 分别什么时候使用 A2 interface和class都
  • 运放专题:电压电流转换

    电压电流转换 电压 电流转换即V I转换 是将输入的电压信号转换成满足一定关系的电流信号 转换后的电流相当一个输出可调的恒流源 其输出电流应能够保持稳定而不会随负载的变化而变化 一般来说 电压电流转换电路是通过负反馈的形式来实现的 可以是电
  • python程序设计基础实验题_Python程序设计实验报告:实验五 综合运用三种基本结构进行程序设计...

    实验五 综合运用三种基本结构进行程序设计 综合性实验 班级 物流191 姓名 韩晶晶 学号 3190505140 指导老师 修宇 成绩 日期 2020 4 25 实验目的 1 进一步掌握选择与循环结构程序设计的方法和技巧 2 综合运用三种基
  • Docker Search 异常:Error response from daemon: Get https://index.docker.io/v1/search?xxx

    docker search tomcat Error response from daemon Get https index docker io v1 search q tomcat n 25 dial tcp lookup index
  • KGDB调试内核

    1 环境 Ubuntu 20 04 VMware Worksation 16 Player Linux Kernel 5 4 0 2 设置虚拟机 2 1 准备两台虚拟机 准备一台虚拟机 然后克隆一台虚拟机 下面以左边为客户端和右边为目标机展
  • phpstorm 自动折叠注释

    用了swagger后 注释得写好大一堆 超过一百行的注释都很常见 看起来心好累 phpstorm 能不能自动折叠那些注释呢 网上搜索不到办法 自己尝试去设置了找了下 原来还真有这个功能 设置方法如下 在设置搜索 fold 勾上 Docume
  • Self-study Python Fish-C Note-4 P20-P26 (part1)

    python 中的列表 Part 1 本文主要讲解了python中列表的使用 本文为自学B站上鱼C的python课程随手做的笔记 如有问题 欢迎大家批评指正 原视频链接 https www bilibili com video BV1c44