[深度学习入门]Python补充知识

目录


一、Python序列

  Python中常见的序列结构有列表、元组、字符串、字典、集合以及range等对象,也支持很多类似的操作。
  列表、元组、字符串支持双向索引,第一个元素下标为0,第二个元素下标为1,以此类推;最后一个元素下标为-1,倒数第二个元素下标为-2,以此类推。
在这里插入图片描述
  列表是Python中内置有序可变序列,列表的所有元素放在一对中括号”[]”中,并使用逗号分隔开
  当列表元素增加或删除时,列表对象自动进行扩展或收缩内存,保证元素之间没有缝隙。
  在Python中,一个列表中的数据类型可以各不相同可以同时分别为整数、实数、字符串等基本类型,甚至是列表、元组、字典、集合以及其他自定义类型的对象
在这里插入图片描述
  列表常用方法:
在这里插入图片描述

1、列表创建与删除

  使用“=”直接将一个列表赋值给变量即可创建列表对象
在这里插入图片描述
  也可以使用list()函数将元组、range对象、字符串或其他类型的可迭代对象类型的数据转换为列表
在这里插入图片描述
  range对象本身不是列表,也不是对象可用list()函数或其他方法将其转换为列表
  当不再使用时,使用del命令删除整个对象如果列表对象所指向的值不再有其他对象指向,Python将同时删除该值
在这里插入图片描述


2、列表元素的增加

(1)可以使用“+”运算符将元素添加到列表中。

在这里插入图片描述
  严格意义上来讲,这并不是真的为列表添加元素,而是创建一个新的列表,并将原列表中的元素和新元素依次复制到新列表的内存空间。由于涉及大量元素的复制,该操作速度较慢,在涉及大量元素添加时不建议使用该方法。

(2)使用列表对象的append()方法,原地修改列表,是真正意义上的在列表尾部添加元素,速度较快。

在这里插入图片描述
  所谓“原地”,是指不改变列表在内存中的首地址
  列表中包含的是元素值的引用,而不是直接包含元素值。如果是直接修改序列变量的值,则与Python普通变量的情况是一样的,而如果是通过下标来修改序列中的元素的值或通过可变序列对象自身提供的方法来增加和删除元素时,序列对象在内存中的起始地址是不变的仅仅是被改变值的元素地址发生变化,也就是所谓的“原地操作”。
在这里插入图片描述

(3)使用列表对象的extend()方法可以将另一个迭代对象的所有元素添加至该列表对象的尾部。通过extend()方法来增加到表元素也不改变其内存首地址,属于原地操作。

在这里插入图片描述

(4)使用列表对象的insert()方法将元素添加至列表的指定位置

在这里插入图片描述
  尽可能从列表尾部进行元素的增加与删除操作
  列表的insert()可以在列表的任意位置插入元素,但由于列表的自动内存管理功能,insert()方法会涉及到插入位置之后所有元素的移动,这会影响处理速度
  类似的还有后面介绍的remove()方法以及使用pop()函数弹出列表非尾部元素和使用del命令删除列表非尾部元素的情况。

(5)使用乘法来扩展列表对象,将列表与整数相乘,生成一个新列表,新列表是原列表中元素的重复。

在这里插入图片描述

(6)当使用*运算符将包含列表的列表重复并创建新列表时,并不创建元素的复制,而是创建已有对象的引用。因此,当修改其中一个值时,相应的引用也会被修改。

在这里插入图片描述


3、列表元素的删除

(1)使用del命令删除列表中的指定位置上的元素。

在这里插入图片描述

(2)使用列表的pop()方法删除并返回指定(默认为最后一个)位置上的元素,如果给定的索引超出了列表的范围则抛出异常。

在这里插入图片描述

(3)使用列表对象的remove()方法删除首次出现的指定元素,如果列表中不存在要删除的元素,则抛出异常。

在这里插入图片描述


4、列表元素访问与计数

(1)使用下标直接访问列表元素,如果指定下标不存在,则抛出异常。

在这里插入图片描述

(2)使用列表对象的index()方法获取指定元素首次出现的下标,若列表对象中不存在指定元素,则抛出异常。

在这里插入图片描述

(3)使用列表对象的count()方法统计指定元素在列表对象中出现的次数。

在这里插入图片描述


5、成员资格判断

  如果需要判断列表中是否存在指定的值,可以使用count()方法如果存在则返回大于0的数,如果返回0则表示不存在。或者,使用更加简洁的“in”关键字来判断一个值是否存在于列表中,返回结果为“True”或“False”。
在这里插入图片描述


6、切片操作

  切片是Python序列的重要操作之一,适用于列表、元组、字符串、range对象等序列
  切片使用2个冒号分割的3个数字来完成第一个数字表示切片开始位置(默认为0)第二个数字表示切片截止(但不包含)位置(默认为列表长度)第三个数字表示切片的步长(默认为1),当步长省略时可以顺便省略最后一个冒号。可以使用切片来截取列表中的任何部分,得到一个新列表,也可以通过切片来修改和删除列表中部分元素,甚至可以通过切片操作为列表对象增加元素。
  切片操作不会因为下标越界而抛出异常,而是简单地在列表尾部截断或者返回一个空列表,代码具有更强的健壮性。
在这里插入图片描述
  可以使用切片来原地修改列表内容
在这里插入图片描述
  使用del与切片结合来删除列表元素
在这里插入图片描述


7、列表排序

  使用列表对象的reserve方法进行原地排序,支持多种不同的排序方法。
在这里插入图片描述
  使用内置函数sorted对列表进行排序并返回新列表
在这里插入图片描述
  使用列表对象的reserve方法将元素原地逆序
在这里插入图片描述


8、用于序列操作的常用内置函数

  len(列表):返回列表中的元素个数,同样适用于元组、字典、集合、字符串等。
  max(列表)、min(列表):返回列表中的最大或最小元素,同样适用于元组、字典、集合、range对象等。
在这里插入图片描述


9、列表推导式

  列表推导式使用非常简洁的方式来快速生成满足特定需求的列表,代码具有非常强的可读性。
在这里插入图片描述
在这里插入图片描述


二、元组

  元组和列表类型,但属于不可变序列元组一旦创建,用任何方法都不可以修改其元素
  元组的定义方式和列表相同,但定义时所有元素是放在一对圆括号“()”中,而不是方括号中

1、元组创建与删除

  使用“=”将一个元组赋值给变量
在这里插入图片描述
  使用tuple函数将其他序列转换为元组
在这里插入图片描述
  使用del可以删除元组对象,不能删除元组中的元素


2、元组与列表的区别

  元组中的数据一旦定义就不允许更改
  元组没有append()、extend()和insert()等方法,无法向元组中添加元素
  元组没有remove()或pop()方法,也无法对元组元素进行del操作,不能从元组中删除元素
  从效果上看,tuple()冻结列表,而list()融化元组


3、元组的优点

  元组的速度比列表更快。如果定义了一些列常量值,而所需做的仅是对它进行遍历,那么一般使用元组而不用列表。
  元组对不需要改变的数据进行“写保护”将使得代码更加安全。
  元组可用作字典键(特别是包含字符串、数值和其他元组这样的不可变数据的元组)。列表永远不能当作字典键使用,因为列表不是不可变的


4、字典

  字典是无序可变序列
  定义字典时,每个元素的键和值用冒号分隔,元素之间用逗号分隔,所有的元素放在一对大括号”[]”中
  字典中的键可以为任意不可变数据,比如整数、实数、复数、字符串、元组等等。
  globals()返回包含当前作用域内所有全局变量和值的字典
  locals()返回包含当前作用域内所有局部变量和值的字典


5、字典创建与删除

  使用=将一个字典赋值给一个变量:
在这里插入图片描述
  使用dict利用已有数据创建字典
在这里插入图片描述
  使用dict根据给定的键、值创建字典
在这里插入图片描述
  以给定内容为键,创建值为空的字典
在这里插入图片描述
  None无引号,不是字符串,表示未对字典赋值
  可以使用del删除整个字典


6、字典元素的读取

  以键作为下标可以读取字典元素,若键不存在则抛出异常
在这里插入图片描述
  使用字典对象的get方法获取指定键对应的值,并且可以在键不存在的时候返回指定值
在这里插入图片描述
  使用字典对象的items()方法可以返回字典的键、值对列表。
  使用字典对象的keys()方法可以返回字典的键列表。
  使用字典对象的values()方法可以返回字典的值列表。
在这里插入图片描述
  上面的key不表示输出键,而相当于局部循环变量。要单独输出键/值,应在aDict中进行限定。未加特殊说明,默认为键。
  当以指定键为下表为字典赋值时,若键存在,则可以修改该键的值;若不存在,则表示添加一个键、值对
在这里插入图片描述
  使用字典对象的update方法将另一个字典的键、值对添加到当前字典对象
在这里插入图片描述
  使用del删除字典中指定键的元素。
  使用字典对象的clear()方法来删除字典中所有元素。
  使用字典对象的pop()方法删除并返回指定键的元素。
  使用字典对象的popitem()方法删除并返回字典中的一个元素。


7、字典应用案例

  首先生成包含1000个随机字符的字符串,然后统计每个字符的出现次数
在这里插入图片描述


8、字典推导式

在这里插入图片描述


9、集合

  集合是无序可变序列,使用一对大括号界定。元素不可重复,同一个集合中每个元素都是唯一的。
  集合中只能包含数字、字符串、元组等不可变类型(或者是可哈希)的数据,而不能包含列表、字典、集合等可变类型的数据


10、集合的创建与删除

  直接将集合赋值给变量。
在这里插入图片描述
  使用set将其他类型数据转换为集合。
在这里插入图片描述
  使用del删除整个集合。
  当不在使用某个集合时,可以使用del命令删除整个集合。集合对象的pop()方法弹出并删除其中一个元素,remove()方法直接删除指定元素,clear()方法清空集合等运算。
在这里插入图片描述
  Python集合支持交集、并集、差集等运算。
在这里插入图片描述

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TJUTCM-策士之九尾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值