kuiini的python学习-03

三、Python 的数据结构


1、列表

列表的创建和删除

1、创建列表:

  1. 使用中括号 [] 将数据围起来
  2. 数据之间用逗号分隔

赋值运算符 = 将列表赋值给变量

示例:
在这里插入图片描述

2、列表中的数据称为元素,可以是多种数据类型。

3、创建空列表

示例:
在这里插入图片描述

4、在 Python 中,可以使用 list() 函数直接创建列表。
list() 的括号 () 中可以是字符串range() 对象其它可以迭代的数据

示例:
在这里插入图片描述
在这里插入图片描述

拓展:

range()函数:

  • 基本语法格式:
    range(start, stop, step)

  • 数据范围:[start, stop)

5、可以用 del 语句,后面指定列表名称。

示例:
在这里插入图片描述

索引和切片

1、Python 中的索引从 0 开始记数递增
索引有正负。(当索引为负数时,从右往左开始计数,也就是从列表的最后一个元素开始访问,对应的索引为 -1)。负数索引从 -1 开始

示例:
在这里插入图片描述

2、可以通过 len() 函数获取该列表的长度,即元素个数。

示例:
在这里插入图片描述

3、列表 1 包含列表 2 ,想要访问列表 2 中的元素,需要使用两次索引。

示例:
在这里插入图片描述

4、通过切片(slice) 也可以访问列表中的元素,而且更加灵活。

  • 语法格式:列表名[start : end : step]
    • start:起始索引(包含该位置),默认值为 0 .
    • end:结束索引(不包含该位置),默认值为列表的长度。
    • step:步长,默认值为 1。步长为正数时,从左往右取值;步长为负数时,从右往左取值。(如果省略步长,最后一个冒号也可以省略。如果省略的是 start 和 end ,则需要保留冒号)

使用切片从列表中获取元素并不会改变原有列表中的元素

示例:

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

注释:

  • 与 range() 的区别:
    • range() 间隔用 “,” ,不可省略;slice 间隔用 “:” ,视条件可省略。
    • range() 为建立列表 list;slice 用于切片,从列表中切出元素。
添加列表元素

1、append() 方法

append() 方法用于在列表末尾添加新元素,而且每次只能添加一个元素。

示例:
在这里插入图片描述

  • 注意:append() 方法只接受 1 个参数

2、extend() 方法

extend() 方法用于向列表末尾添加多个元素,且不限制数据类型
添加数据时,需要在 () 中指定列表的形式。

示例:
在这里插入图片描述

3、insert() 方法

insert() 方法可以在列表中的任意位置添加元素。
该方法有两个参数,第一个参数表示带添加元素的位置(索引),第二个参数表示待添加的元素
insert() 方法一次只能添加一个元素。

示例:
在这里插入图片描述
在这里插入图片描述

注释:
正索引为位置(本质上为相对距离),负索引为相对距离。

修改列表元素

可以通过索引修改列表元素

示例:
在这里插入图片描述

  • 注意:一次只能修改一个元素。
删除列表元素

1、remove() 方法

remove() 方法只需要指定一个待删除的元素。如果指定的元素在列表中不存在,则会出现 ValueError 错误。

示例:
在这里插入图片描述

  • 注意:前提是该元素必须存在于列表中。

2、pop() 方法

pop() 方法只许指定列表中的索引值并将其删除。
如果不指定索引,则默认删除最后一个元素

示例:
在这里插入图片描述

3、del 语句

示例:
在这里插入图片描述

  • 注意:del 是 Python 中的一个语句,并不是列表中的方法。

2、元组

元组的创建和删除

1、列表中使用中括号 [] 进行定义,而元组使用小括号 () 进行定义。
元组中的元素可以是不同的数据类型,每一个元素使用 ==,(逗号)==进行分隔。

2、如果元组中只有一个元素,元素后面也需要加一个逗号,如果不加逗号,元素会还原其原本的类型,元组会定义为普通变量。

示例:
在这里插入图片描述

3、元组中的元素可以是字符串、数字等多种数据类型。
定义元组的小括号 () 也可以省略,直接使用逗号分隔元素即可。

示例:
在这里插入图片描述

4、空元组可以用于为函数传递一个控制或返回空值。

示例:
在这里插入图片描述

5、使用 tuple() 函数和 range() 函数也可以创建一个数值型的元组。( list() 和 tuple() 中的数据只要是可迭代对象就可以,比如字符串、range() 对象等)

示例:
在这里插入图片描述

6、元组中的元素不可以被修改。
如果必须要删除元组,可以使用 del 语句将整个元组删除。

示例:
在这里插入图片描述

  • 在实际应用中,del 语句并不常用,因为 Python 会自动将其回收,不用手动删除。
访问元组元素

1、索引

示例:
在这里插入图片描述

2、切片

示例:
在这里插入图片描述

”修改“元组元素

1、虽然不能修改元组中的元素,但可以创建一个同名元组并对它重新赋值。

示例:
在这里插入图片描述

2、我们可以使用 + 的方式拼接元组和新元素,以达到修改元组元素的目的。

示例:
在这里插入图片描述

3、在进行元组连接时,连接的内容必须都是元组,不可以将元组与字符串或列表进行连接。
如果要连接的元组只包含一个元素,不要忘记在该元素后面加上逗号
如果想修改元组中间的元素,可以通过切片实现。

示例:
在这里插入图片描述

3、字典

字典的创建和删除

创建字典时,每个元素都必须包含两个部分。

  • 使用 ==:(冒号)==分隔;
  • 每个元素之间通过 ==,(逗号)==分隔;
  • 字典中的所有元素都放在 {} 中;
  • 如果是空字典,则直接使用 {} 表示。

定义格式:
字典名称 = {key1:value1, key2:value2, ..., keyn:valuen}

1、字典中允许存在不同的 key 对应相同的 value。

示例:
在这里插入图片描述

2、如果字典中的出现了相同的情况,则后者的值将会覆盖前者的值。

示例:
在这里插入图片描述

3、空字典

示例:
在这里插入图片描述

4、通过 dict() 函数创建字典。(这里键和值之间使用的是 =)

  • 注意:键的位置不能加上表示字符串的引号,否则会出错。

示例:
在这里插入图片描述

5、我们还可以通过已创建的元组和列表分别作为字典的键和值

  • 注意:这里元组只能作为键,列表作为值,不能颠倒。因为元组不可变,符合键的条件,而列表可变,符合值的条件。

示例:
在这里插入图片描述

6、通过 dict() 和 zip() 函数创建字典可以将已定义好的元组和列表放入 zip() 函数中,作为它的两个参数,生成的字典 dict2 中,键和值是对应的。

示例:
在这里插入图片描述

  • 这里的 zip() 函数可以将多个列表或元组对应的位置组合为元组,然后返回包含这些内容的 zip 对象,再通过 dict() 函数将其转化为字典。

7、与列表和元组一样,不需要的字典也可以使用 del 语句进行删除。
如果只是清空字典中的元素,可以使用 clear() 方法,原本的字典将会变成一个空字典。

示例:
在这里插入图片描述

访问字典元素

1、通过键找到对应的值。

示例:
在这里插入图片描述

2、Python 中推荐使用 get() 函数来获取指定的键。
如果该方法指定的键不存在,则返回一个默认值(None)。

示例:
在这里插入图片描述

3、可以为 get() 函数设置返回的默认值,即当指定的键不存在时,返回的就是设置的值。

示例:
在这里插入图片描述

添加字典元素

1、在向字典中添加新元素时,也需要以键值对的形式添加。
在添加的时候,需要指定新的键并为其赋值,可以是新值,也可以是重复的值。

示例:
在这里插入图片描述

修改字典元素

示例:
在这里插入图片描述

删除字典元素

1、del 语句不仅可以删除整个字典,还可以删除字典中某个指定的元素。
使用这种方式删除元素,需要指定的键。

示例:
在这里插入图片描述

2、使用 pop() 方法popitem() 方法删除字典中指定的元素。

  • 在 pop() 方法中指定键,可以弹出对应的值并删除。
  • popitem() 方法弹出的是字典中的最后一个元素,即最后一个键值对,并将其删除。

示例:
在这里插入图片描述
在这里插入图片描述

4、集合

在 Python 中,集合最大特点就是元素唯一性

集合的创建和删除

1、方法:

  • 直接使用 {} 创建集合
  • 使用 set() 函数进行创建

示例:
在这里插入图片描述

​ 如果集合中有重复的元素,Python 会自动只保留 1 个(自动去掉重复的部分)。
​ 在创建集合时,会去掉重复的元素而生成无序且不重复的集合。

2、如果想创建一个空集合,必须使用 set() 函数。因为直接使用 {} 定义,表示创建一个空字典。
在 Python 中,set() 函数可以将可迭代对象转换为集合,比如列表、字符串等。

示例:
在这里插入图片描述

3、定义混合类型的集合。

示例:
在这里插入图片描述

4、在 Python 中,使用 del 语句可以删除整个集合,使用 clear() 方法可清空集合中的元素。

示例:
在这里插入图片描述

访问集合

1、由于集合是一种无序的数据类型,无法通过索引访问对应的元素。则可以用 for 循环遍历集合,读取元素。

示例:
在这里插入图片描述

添加集合元素

1、在集合中,可以使用 add() 方法添加新元素。
添加的元素可以是字符串、数字、布尔类型(Ture 或者 False)、元组等不可变对象,不能是列表、字典等可变对象。
添加的元素必须是集合中不存在的。

示例:
在这里插入图片描述

删除集合元素

1、使用 remove() 方法,在该方法中指定要删除的元素即可。

示例:
在这里插入图片描述

2、Python 提供了一个可以随机删除集合元素的方法 pop() 。
该方法不需要指定待删除的元素,直接使用集合调用即可。

示例:
在这里插入图片描述

集合的交并差操作
  • 交集:使用 & 符号,返回两个集合的共同元素。
  • 并集:使用 | 符号,返回两个集合的所有元素(不重复)。
  • 差集:使用 - 符号,比如 a-b 表示只属于 a,而不属于 b 的元素。
  • 对称差集:使用 ^ 符号,返回两个集合的非共同元素。

示例:
在这里插入图片描述

5、字符串

字符串的拼接

1、如果需要将两个或多个字符串拼接起来,生成一个字符串,可以使用 + 运算符。

  • 注意:字符串不允许直接与其他数据类型进行拼接,需要将其他数据类型转换成字符串类型才可以继续拼接。

​ 在没有 = 的情况下,如果字符串之间相邻,则会自动合并为一个字符串。

示例:
在这里插入图片描述

2、可以使用 * 来重复字符串,然后再拼接。

示例:
在这里插入图片描述

字符串切片

不同的字符占用的字节数不同,在 Python 中,数字、英文、小数点、下划线、空格占 1 个字节,一个汉字可能占用 2 ~ 4 个字节,这主要取决于使用的编码。
在 GBK、GB2312 编码中,汉字占两个字节;在 UTF-8 编码中,汉字(包含中文标点符号)占 3 个字节。

1、Python 提供了 len() 函数,来获取字符串的长度。(默认情况下,len() 函数不区分汉字或字母的长度,全部按照 1 个字节计算)。
如果要获取字符串实际占用的字节数时,可以使用 encode() 方法进行编码后获取字符串长度。

示例:
在这里插入图片描述

  • 注意:使用 encode() 方法不指定编码时,默认采用 UTF-8 编码

2、索引

示例:
在这里插入图片描述

字符串的拆分和合并

字符串拆分时,会生成列表形式;字符串合并时,会将列表整合成一个字符串

1、split() 方法

split() 方法可以拆分字符串并返回列表形式。

语法格式:
str.split(sep,maxsplit)

参数说明:

  • str:表示字符串,可以是字符串赋值后的变量。
  • sep:分隔符,可以包含多个字符,默认值为 None。
  • maxsplit:分割次数,可选参数。如果不指定或指定该参数为 -1,则表示分割次数没有限制,否则返回列表的元素个数。

示例:
在这里插入图片描述

2、join() 方法

字符串在合并时会通过指定的分隔符连接在一起。

语法格式:
newstr = str.join(iterable)

参数说明:

  • newstr:合并后生成的新字符串。
  • str:字符串类型的分隔符。
  • iterable:可迭代对象。

示例:
在这里插入图片描述

检索字符串

1、count() 方法

count() 方法用于检索指定字符串在另一个字符串中出现的次数。如果不存在,则返回 0,否则返回出现次数。

语法格式:
str.count(sub,start,end)

参数说明:

  • str:原始字符串。
  • sub:带检索的子字符串。
  • start:可选参数,表示检索范围的起始索引。如果不指定,则从头开始检索。
  • end:可选参数,表示检索范围的结束索引。如果不指定,则会一直检索到结尾。

示例:
在这里插入图片描述

2、find() 方法

如果检索的字符串不存在,则返回 -1,否则返回第 1 次出现该子字符串时的索引

语法格式
str.find(sub,start,end)

参数说明:

  • str:原始字符串。
  • sub:带检索的子字符串。
  • start:可选参数,表示检索范围的起始索引。如果不指定,则会从头开始索引。
  • end:可选参数,表示检索范围的结束索引。如果不指定,则会一直检索到结尾。

示例:
在这里插入图片描述

3、index() 方法

index() 方法与 find() 方法类似,不同的是如果检索的子字符串不存在,会抛出异常。

语法格式:
str.index(sub.start.end)

示例:
在这里插入图片描述

4、startswith() 方法

startswith() 方法用于检索字符串是否以指定的子字符串(前缀)开头,如果是则返回 True,否则返回 False。

语法格式:
str.startswith(prefix,start,end)

参数说明:

  • str:原始字符串。
  • prefix:带检索的子字符串(前缀)。
  • start:可选参数,表示检索范围的起始索引。如果不指定,则会从头开始索引。
  • end:可选参数,表示检索范围的结束索引。如果不指定,则会一直检索到结尾。

示例:
在这里插入图片描述

5、endswith() 方法

endswith() 方法用于检索字符串是否以指定的子字符串(后缀)结尾,如果是则返回 True,否则返回 False。

语法格式:
str.endswith(suffix,start,end)

参数说明:

  • str:原始字符串。
  • suffix:带检索的子字符串(后缀)。
  • start:可选参数,表示检索范围的起始索引。如果不指定,则会从头开始索引。
  • end:可选参数,表示检索范围的结束索引。如果不指定,则会一直检索到结尾。

示例:
在这里插入图片描述

拓展:

1、lower() 方法

lower() 用于将字符串中的大写字母转换为小写字母
如果没有需要转换的字母,则返回原始字符串,否则返回一个新的字符串。

  • 注意:新字符串和原始字符串长度相同。

示例:
在这里插入图片描述

2、upper() 方法

upper() 用于将字符串中的小写字母转换为大写字母
如果没有需要转换的字母,则返回原始字符串,否则返回一个新的字符串。

  • 注意:新字符串和原始字符串长度相同。

示例:
在这里插入图片描述

3、replace() 方法

replace() 方法用于将字符串中的指定字符串(old)替换成新字符串(new),可以指定替换次数。

语法格式:
str.replace(old,new,max)

参数说明:

  • old:原始字符串中将被替换的旧字符串。
  • new:新字符串。
  • max:可选参数,表示替换次数。

示例:
在这里插入图片描述

4、strip() 方法

strip() 方法用于去除字符串左右两侧的空格和特殊字符,可以在该方法中指定多个需要去除的字符。
如果不指定,则默认去除空格、制表符(\t)、回车符(\r)、换行符(\n)等。

示例:
在这里插入图片描述

格式化字符串

1、format() 方法

使用该方法格式化字符串时,需要通过 {} 和 : 创建格式化模板。
当 {} 中为数字时,表示的是位置参数;当 {} 中表示的是其他参数是,表示的是关键字参数

示例:
在这里插入图片描述

  • 注意:两种方式可以混用,但是位置参数必须在关键字参数之前,否则会出错。

当使用 :(冒号)时,: 表示格式化符号的开始。

示例:
在这里插入图片描述

2、% 操作符

常见的格式化符号:

格式化符号说明
%c单个字符
%s字符串
%d十进制整数
%f浮点数
%o无符号八进制整数
%x无符号十六进制整数
%e用科学计数法格式化浮点数

示例:
在这里插入图片描述

辅助符号:

辅助符号说明
+右对齐,正数前面加正号
-左对齐,负数前面加负号
0用于填充空白处
#在八进制数前显示0o,十六进制数前显示0x或0X
m.nm表示最小总宽度(包括小数点),n表示小数点后的位数

示例:
在这里插入图片描述

6、获取身份证号码中的出生日期

程序代码:

student1 = '你可以通过程序从身份证号码中只输出出生信息吗?'
print('student1说:',student1)                # 输出student1说的话
student2 = '那就拿你的身份证号码试试吧!'
print('student2说:',student2)                # 输出student2说的话
id_info = input('请输入18位身份证号码:')      # 输入18位身份证号码
print('你的身份证号码是:',id_info)            # 输入身份证号码
brith = id_info[6:10] + '年' + id_info[10:12] + '月' + id_info[12:14] + '日'
print('student2说:你的出生信息是',brith)      # 输出出生年月日
print('student2说:你的生日就是',brith[5:])    # 输出生日

运行结果:
在这里插入图片描述

  • 51
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值