首页 > 编程语言 >黑马程序员Python课程学习笔记5

黑马程序员Python课程学习笔记5

时间:2024-08-10 15:53:39浏览次数:16  
标签:下标 Python 元素 列表 语法 程序员 字符串 集合 黑马

数据容器

Python中的数据容器:
一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素。每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。


数据容器根据特点的不同,如:

  • 是否支持重复元素
  • 是否可以修改
  • 是否有序,等

分为5类,分别是:

列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)


数据容器:list(列表)

基本语法:

列表内的每一个数据,称之为元素

  • 以[]作为标识
  • 列表内每一个元素之间用,逗号隔开

注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套。

列表的下标索引

正向索引:

(从0开始,依次递增)

语法:列表[下标索引]

eg.name_list[0]

反向索引:

(从-1开始,依次递减)

eg.name_list[-1]

嵌套列表的下标(索引)

语法:列表[下标索引][下标索引]

注意:

要注意下标索引的取值范围,超过范围无法取出元素,并且会报错。


列表的常用操作

在Python中,如果将函数定义为class(类)的成员,那么函数会称之为:方法

方法和函数功能一样,有传入参数,有返回值,只是方法的使用格式不同

列表的查询功能(方法)

  • 查找某元素的下标

功能:查找指定元素在列表的下标,如果找不到,报错ValueError
语法:列表.index(元素)
index就是列表对象(变量)内置的方法(函数)

列表的修改功能(方法)

  • 修改特定位置(索引)的元素值:

语法:列表[下标]=值
可以使用如上语法,直接对指定下标(正向、反向下标均可)的值进行:重新赋值(修改)

  • 插入元素:

语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素

  • 追加元素方式1: 

语法:列表.append(元素),将指定元素,追加到列表的尾部

  • 追加元素方式2:

语法:列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部

  • 删除元素:

语法1:del 列表[下标]
语法2:列表.pop(下标)       该方法可以得到删除元素的返回值 

  • 删除某元素在列表中的第一个匹配项

语法:列表.remove(元素)

  • 清空列表内容

语法:列表.clear()

  • 统计某元素在列表内的数量

语法:列表.count(元素)

  • 统计列表内,有多少元素

语法:len(列表)

总结:


list(列表)的遍历

列表的遍历-while循环

1.如何遍历列表的元素呢?
答:可以使用前面学过的while循环
2.如何在循环中取出列表的元素呢?
答:使用列表[下标]的方式取出
3.循环条件如何控制?
答:定义一个变量表示下标,从0开始,循环条件为 下标值<列表的元素数量

列表的遍历-for循环

while循环和for循环的对比

while循环和for循环,都是循环语句,但细节不同:

  • 在循环控制上:

1.while循环可以自定循环条件,并自行控制
2.for循环不可以自定循环条件,只可以一个个从容器内取出数据

  • 在无限循环上:

1.while循环可以通过条件控制做到无限循环
2.for循环理论上不可以,因为被遍历的容器容量不是无限的

  • 在使用场景上:

1.while循环适用于任何想要循环的场景
2.for循环适用于,遍历数据容器的场景或简单的固定次数循环场景
 


数据容器:tuple(元组)

元组一旦定义完成,就不可以修改

元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。
 

注意:

1.元组只有一个数据,这个数据后面要添加逗号,如果不加逗号,则不是元组类型

eg.t2=('Hello',)

2.元组与列表一样支持下标索引,且用法一致

3.元组遍历与列表也一致

元组的相关操作

补充:

1.不可以修改元组的内容,否则会直接报错

2.可以修改元组内的list的内容(修改元素、增加、删除、反转等)


字符串

和其它容器如:列表、元组一样,字符串也可以通过下标进行访问
1. 从前向后,下标从0开始
2. 从后向前,下标从-1开始
注意:同元组一样,字符串是一个:无法修改的数据容器

字符串的常用操作

  • 查找特定字符串的(起始)下标索引值

语法:字符串.index(字符串)

  • 字符串的替换

语法:字符串.replace(字符串1,字符串2)
功能:将字符串内的全部:字符串1,替换为字符串2
注意:不是修改字符串本身,而是得到了一个新字符串,返回值是新的字符串哦

  • 字符串的分割

语法:字符串.split(分隔符字符串)
功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中
注意:字符串本身不变,而是得到了一个列表对象

  • 字符串的规整操作(去前后空格)

语法:字符串.strip()

  • 字符串的规整操作(去前后指定字符串)

语法:字符串.strip(字符串)

注意,传入的是“12”其实就是:“1”和“2”都会移除,是按照单个字符。

  • 统计字符串中某个字符串的出现次数

语法:字符串.count(字符串)

  • 统计字符串的长度

语法:len(字符串)
字符串的遍历

同列表、元组一样,字符串也支持while循环和for循环进行遍历
字符串的特点
作为数据容器,字符串有如下特点:
1.只可以存储字符串
2.长度任意(取决于内存大小)
3.支持下标索引
4.允许重复字符串存在
5.不可以修改(增加或删除元素等)
6.支持while、for循环


序列

序列是指:内容连续、有序,可使用下标索引的一类数据容器
列表、元组、字符串,均可以视为序列。

序列的常用操作-切片
序列支持切片,即:列表、元组、字符串,均支持进行切片操作
切片:从一个序列中,取出一个子序列
语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:
1.起始下标表示从何处开始,可以留空,留空视作从头开始
2.结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
3.步长表示,依次取元素的间隔
    3.1  步长1表示,一个个取元素
    3.2  步长2表示,每次跳过1个元素取
    3.3  步长N表示,每次跳过N-1个元素取
    3.4  步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)


集合
集合的定义
基本语法:

# 定义集合字面量

{元素,元素,......,元素}

# 定义集合变量

变量名称 ={元素,元素,......,元素}

# 定义空集合

变量名称=set()

注意:

空集合变量输出结果为set()

集合的常用操作-修改
首先,因为集合是无序的,所以集合不支持:下标索引访问
但是集合和列表一样,是允许修改的。

  • 添加新元素

语法:集合.add(元素)。将指定元素,添加到集合内
结果:集合本身被修改,添加了新元素

  • 移除元素

语法:集合.remove(元素),将指定元素,从集合内移除
结果:集合本身被修改,移除了元素

  • 从集合中随机取出元素

语法:集合.pop(),功能,从集合中随机取出一个元素
结果:会得到一个元素的结果。同时集合本身被修改,元素被移除

  • 清空集合

语法:集合.clear(),功能,清空集合
结果:集合本身被清空

  • 取出2个集合的差集

语法:集合1.difference(集合2),功能:取出集合1和集合2的差集(集合1有而集合2没有的)
结果:得到一个新集合,集合1和集合2不变

  • 消除2个集合的差集

语法:集合1.difference_update(集合2)
功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。
结果:集合1被修改,集合2不变

  • 2个集合合并

语法:集合1.union(集合2)
功能:将集合1和集合2组合成新集合

结果:得到新集合,集合1和集合2不变

  • 统计集合元素数量

语法:len(集合)

集合的遍历
集合不支持下标索引,不能用while循坏,可以用for循环

集合的特点
1.可以容纳多个数据
2.可以容纳不同类型的数据(混装)
3.数据是无序存储的(不支持下标索引)
4.不允许重复数据存在
5.可以修改(增加或删除元素等)
6.支持for循环
 


字典

字典的定义
字典的定义,同样使用{},不过存储的元素是一个个的:键值对,如下语法:

字典数据的获取
字典同集合一样,不可以使用下标索引,但是字典可以通过Key值来取得对应的Value
字典的嵌套
字典的Key和Value可以是任意数据类型(Key不可为字典)
注意:

字典内Key不允许重复,重复添加等同于覆盖原有数据
字典的常用操作

  • 新增元素

语法:字典[Key]=Value,结果:字典被修改,新增了元素

  • 更新元素

语法:字典[Key]=Value,结果:字典被修改,元素被更新
注意:字典Key不可以重复,所以对已存在的Key执行上述操作,就是更新Value值

  • 删除元素

语法:字典.pop(Key),结果:获得指定Key的Value,同时字典被修改,指定Key的数据被删除,并且返回被删Value值

  • 清空字典

语法:字典.clear(),结果:字典被修改,元素被清空

  • 获取全部的key

语法:字典.keys(),结果:得到字典中所有Key

  • 统计字典元素数量

语法:len(字典)

遍历字典

字典的特点
1.可以容纳多个数据
2.可以容纳不同类型的数据
3.每一份数据是KeyValue键值对
4.可以通过Key获取到Value,Key不可重复(重复会覆盖)
5.不支持下标索引
6.可以修改(增加或删除更新元素等)
7.支持for循环,不支持while循环
 


数据容器分类

数据容器特点对比

数据容器的通用统计功能

1.len(容器)统计容器的元素个数
2.max(容器)统计容器的最大元素

3.min(容器)统计容器的最小元素

通用类型转换

容器通用排序功能
通用排序功能

正向排序:

sorted(容器)

反向排序:
sorted(容器,[reverse=True])
将给定容器进行排序
 


ASCII码表
在程序中,字符串所用的所有字符如:
1.大小写英文单词
2.数字
3.特殊符号(!、\、|、@、#、空格等)
都有其对应的ASCII码表值

每一个字符都能对应上一个:数字的码值
字符串进行比较就是基于数字的码值大小进行比较的。
字符串比较
字符串是按位比较,也就是一位位进行对比,只要有一位大,那么整体就大。
 

标签:下标,Python,元素,列表,语法,程序员,字符串,集合,黑马
From: https://blog.csdn.net/2401_86364989/article/details/140751221

相关文章

  • 黑马程序员Python课程学习笔记6
    函数的多返回值按照返回值的顺序,写对应顺序的多个变量接收即可变量之间用逗号隔开支持不同类型的数据returneg.deftest_return():    return1,2x,y=test_return()函数的多种参数使用形式位置参数位置参数:调用函数时根据函数定义的参数位置来传递参数注意:传......
  • Python time模块与datetime模块的区别
    时间方面的编程在开发过程中是很常见的,而Python提供了datetime和time这两个关于时间的模块。接下来,我们将讨论这两个模块中的函数有什么区别。time模块:如果你想要获取当前的本地时间,那么首先你需要运行time.time()来获取当下的时间戳。importtime#获取目前的时间戳ti......
  • python程序代码这样加密保护,你觉得可以吗?
    python程序代码很容易反编译,下面我体验了pyhton代码保护的好方法,方案支持windows与Linux系统,下面以linux系统为例进行加密演示。下载最新Linux平台开发工具包 http://chinadlp.com/?list-DriveDownload.html拷贝到有桌面的Ubuntu系统中解压:tar-xzfSentinel-LDK.tar.gz ......
  • Python网络爬虫抓取动态网页并将数据存入数据库MySQL
    简述以下的代码是使用python实现的网络爬虫,抓取动态网页http://hb.qq.com/baoliao/。此网页中的最新、精华下面的内容是由JavaScript动态生成的。审查网页元素与网页源码是不同。以上是网页源码以上是审查网页元素所以此处不能简单的使用正则表达式来获取内容。......
  • Python 爬虫项目实战(七):制作视频下载软件
    前言网络爬虫(WebCrawler),也称为网页蜘蛛(WebSpider)或网页机器人(WebBot),是一种按照既定规则自动浏览网络并提取信息的程序。爬虫的主要用途包括数据采集、网络索引、内容抓取等。爬虫的基本原理种子URL:爬虫从一个或多个种子URL开始,这些URL是起点。发送请求:爬虫向这些种......
  • Python 爬虫项目实战(六):爬取大众点评商家数据
    前言网络爬虫(WebCrawler),也称为网页蜘蛛(WebSpider)或网页机器人(WebBot),是一种按照既定规则自动浏览网络并提取信息的程序。爬虫的主要用途包括数据采集、网络索引、内容抓取等。爬虫的基本原理种子URL:爬虫从一个或多个种子URL开始,这些URL是起点。发送请求:爬虫向这些种......
  • 【解决】Python运行中卡住不动-深度解析
    【解决】Python运行中卡住不动-深度解析在Python编程的广阔世界里,遇到程序运行中突然卡住不动的情况并不罕见。这种情况可能源于多种原因,从简单的代码逻辑错误到复杂的系统资源问题。本文将深入探讨Python程序卡住不动的现象,分析其可能的原因,并提供实用的解决思路和......
  • Python官网下载速度超慢:深度解析
    Python官网下载速度超慢:深度解析解决思路1.检查网络连接首先,确保你的网络连接是稳定的,并且没有其他设备或程序占用大量带宽。2.选择合适的下载节点Python官网可能提供了多个镜像站点或下载链接,尝试选择距离你地理位置较近的镜像站点进行下......
  • 爬爬虫码子python
    今天学完了爬虫呦代码如下: importrequests#要爬取的网址url=''#=======发送请求获取响应=======r=requests.get(url=url)#=======打印状态码=======print('状态码:',r.status_code)#=======打印响应内容=======print('响应内容字符串:',r.te......
  • 深入理解Python的模块和包
    目录模块简介创建和使用模块定义模块导入模块模块的搜索路径使用内置模块包简介创建和使用包定义包导入包相对导入和绝对导入模块和包的高级特性模块的重新加载模块的私有属性和函数包的动态导入实际项目中的应用项目结构设计模块化代码的好处总结模块简介在Pyth......