Advertisement

Python基础知识-pycharm版第三章学习笔记

阅读量:

Python中的字符串被视为不可变对象,在无法直接更改其内容的情况下会智能生成新字符串实例。若需对其中的内容进行更改,则必须创建新的字符串对象。建议采用io.StringIO对象或借助array模块来进行原地修改操作。

2.复习基本运算符(比较预算符可以连用):

运算符优先级:位运算和算术运算>比较运算符>赋值运算符

在内存区域中存放多个数值的空间被称为序列,在这种数据结构中所存储的是整数对象的引用位置而非具体数值值。常见的序列类型包括字符串、列表、元组、字典和集合等。例如一个整数序列[10 20 30 40]可以表示为:

该段描述了列表这一内置动态规模序列的基本特性及其存储机制。具体而言:

  • 列表能够存储多个数据项并按顺序排列
  • 其存储空间为连续内存空间
  • 列表具备灵活性,在实际应用中可以根据需求动态调整容量
    标准语法定义方面:
    a = \{10, 20, 30, 40\}
    其中:
  • 10, 20, 30, 40 被称作列表a中的元素
    这些元素各具特色且无须相同,并支持任意数据类型。

5.创建列表:①基本语法[]创建:

②list()创建,使用 list()可以将任何可迭代的数据转化成列表:

③range()创建整数列表,可创建整数列表,语法格式为:range([start,] end[,step])

起始值参数(start)具有可选项特性;其默认设置为0值;结束值参数(end)则必需指定;步长参数(step)具有可选项特性,在Python3中,默认情况下range函数不会生成实际列表而是生成range对象;为了将生成的范围对象转换为实际使用的列表数据结构,则需调用list()函数进行转换。

④推导式生成列表,涉及到for循环和if语句:

6.每当列表追加或移除元素时,该列表会自动进行内存管理,但会引起涉及列表元素的大量移动,从而导致效率不高.除非有必要,我们一般只在列表的尾部添加或删除元素,这样可以显著提高操作效率.

insert函数用于对列表进行就地操作,在末尾添加新元素时效率最高

通过+运算符的操作,并非简单的尾部添加行为。实际上即为生成一个新的列表对象,在此过程中将原有和新增的数据逐一拷贝到新列表中。这样的过程需要进行大量的数据复制。特别当需要处理大量数据时,这种做法并不推荐。

该方法会将目标列表的所有元素追加到自身尾部,并属于就地操作,在此过程中不会生成新的对象

使用insert()方法可以将指定的元素插入到列表对象指定位置;这会导致位于插入位置之后的所有元素向后移动,并可能降低处理效率。当处理大量数据时,请尽量避免使用这种方法;类似的操作还包含remove(), pop(), del(),这些函数在删除非尾部元素时也会引起后续数据项的位置变化

乘积展开,在生成新列表的过程中会使得原列表中的每个元素被重复生成;

del删除操作实现的是将指定索引位置处的元素复制并移动到列表末尾的过程

第8章中的pop()方法用于实现列表的删除操作。该方法不仅能够移除指定位置的元素,还可以在未指定具体索引时,默认从列表末尾移除元素。

9.remove()方法删除,删除首次出现的指定元素,若不存在该元素抛出异常:

使用索引来快速获取列表中的元素,请注意,在这种情况下,默认的索引范围是从零开始,并且上限为列表长度减一。如果超出上述指定的范围,则系统将会触发异常

该方法用于获取指定元素第一次出现的位置。其语法为index(value,[start,[end]])。其中参数start和end指定了搜索范围

12.count()获得指定元素在列表中出现的次数:

13.len()返回列表长度,即列表中包含元素的个数:

14.成员资格判断时会使用更简捷的in关键字来进行判断,并将结果设置为True或False

切片(slice)操作能够高效地提取子列表或进行修改,并遵循以下标准格式:[起始偏移量start:终止偏移量end:[步长 step]]。当省略步长时可相应地跳过第二个冒号。典型操作如下:

在执行切片操作时,在[0,字符串长度-1]区间之外的情况下不会触发错误。当起始偏移量小于零时将其视为零值;而终止偏移量超过上限会被自动校正为上限值。

16.列表的遍历:

for obj in listObj:

print(obj)

通过以下简洁的方式实现内容的复制:首先定义一个包含元素[30,40,50]的新列表;然后将此新列表与空列表进行拼接以生成目标新列表

18.进行列表排序,只是修改原列表,不建新列表的排序:

创建新列表的排序,并使用内置函数sorted()来进行排序。该方法会生成一个新的列表,并不会修改原始列表。

  1. reversed()生成一个迭代器;内置函数reversed()能够实现逆序排列;与列表对象reverse()方法的区别在于:内置函数reversed()不会修改原始列表对象;即它不进行降序排序。

打印输出结果提示:list_reverseiterator 是一个迭代器实例,在第一次遍历后已结束不能再被使用。

20.关于列表相关的其他内置函数汇总:max函数与min函数分别用于获取列表中的最大值与最小值;sum函数能够计算数值型列表中所有元素的总和,并且对于非数值型元素的处理会导致错误发生:

其中的元素本身也可以是其他类型的容器;而一维容器中包含多个子容器则被视为二维结构;将这些数据以表格形式展示出来即可。

嵌套循环打印练习:

22.创建元组tuple,列表list和元组tuple之间的区别在于:

作为可变序列的一种形式, 列表允许调整或替换其中的操作项. 元组被视为不可变序列的一种类型, 并不支持增加、修改或删除操作项.

list()能够支持接受元组、字符串以及各种其他序列类型和迭代器来创建相应的列表结构;而tuple()则能够根据需要构建相应的元组结构。

创建方法:

通过空括号来构造一个空元组。当元组仅包含一个元素时,则该元素后面需跟一个逗号(除非为空元组)。这是因为Python解释器会将(1)视为整数1而将(1,)视为包含该整数的单元素元组

②通过 tuple()创建元组,tuple(可迭代的对象)

在Python中定义了一个新的数据类型称为"tuple"(即"括号"),它的元素是不可变的;与list(即"列表")不同的是,在这种情况下它允许类似的方式访问其元素,并且仍然返回的是一个tuple(即"括号")对象;如果需要对tuple进行排序,则必须使用内置函数sorted(tupleObj),这将产生一个新的list(即"列表")对象而不是修改原始tuple(即括号)本身

24.zip(列表1, 列表2, ...)用于生成一个元组对象...该zip对象在处理数据时会自动将对应位置的元素组合成元组

通过花括号构造元组时,默认会采用小括号表示的构造方式;这种构造方式不会形成列表或元组而是会形成一个迭代实例;即为一个迭代实例;可将其转换为列表或元组;也可将其转换为迭代实例;或者直接作为迭代实例来操作;若需再次访问其中的数据,则需重新初始化该迭代实例:

元组的核心特性在于其不可变性,在数据结构中具有独特的优势。相较于列表而言,在访问与处理效率上具有显著优势,并且类似于整数和字符串,在特定场景下同样具备可操作性。值得注意的是,在字典中使用键时,默认情况下支持整数、字符串以及元组等类型的数据存储功能;而列表不具备被用作字典键的能力。

全部评论 (0)

还没有任何评论哟~