循环代码优化(循环次数较多)
(1)尽量减少循环内部不必要的运算。
(2)嵌套循环中,尽量减少内层循环的计算,尽可能向外提。
(3)局部变量查询较快,尽量使用局部变量。
(4)连接多个字符串,使用join而不使用+
(5)列表进行元素插入和删除,尽量在尾部jin'xing
循环代码优化(循环次数较多)
(1)尽量减少循环内部不必要的运算。
(2)嵌套循环中,尽量减少内层循环的计算,尽可能向外提。
(3)局部变量查询较快,尽量使用局部变量。
(4)连接多个字符串,使用join而不使用+
(5)列表进行元素插入和删除,尽量在尾部jin'xing
else语句
while、for循环可以附带一个else语句(可选)。如果for、while语句没有被break语句结束,则会执行else子句。否则不执行。
break语句
break语句可用于while和for循环,用来结束整个循环,当有嵌套循环时,break语句只能跳出最近一层的循环。
continue语句
continue语句用于结束本次循环,继续下一次,多个循环嵌套时,continue也是应用于最近的一层循环。
嵌套循环
for循环和可迭代对象遍历
for循环通常用于可迭代对象的遍历,语法格式如下:
for 变量 in 可迭代对象:
循环体语句
循环结构
while循环
选择结构嵌套
一定要控制好不同级别代码块的缩进量。
多分支选择结构
双分支选择结构
三元条件运算符
条件为真时的值 if (条件表达式) else 条件为假时的值
选择结构
单分支选择结构
条件表达式详解
在选择和循环结构中,条件表达式的值为False的情况如下:
False、0、0.0、空值None、空序列对象
集合:无序可变,集合底层是字典实现,集合的所有元素都是字典中的”键对象“,因此是不能重复且唯一的。
集合创建和删除
1.{}创建
2.set()创建
3.remove()、clear()
集合相关操作
字典核心底层原理(重要)
列表通过索引值寻找,字典通过键寻找。
字典对象的核心是散列表。散列表是一个稀疏数组,数组的每个单元叫做bucket,每个bucket有两部分:一个是键对象的引用,一个是值对象的引用。
(1)将一个键值对放进字典的底层过程
序列解包
序列解包可以用于元组、列表、字典。序列解包可以方便对多个变量进行赋值。
字典元素添加、修改、删除
1.给字典新增键值对,如果键已经存在则被覆盖,若键不存在则增加。
2.使用update()将新字典中所有键值对全部添加到旧字典上,如果键重复则进行覆盖。
3.字典中元素的删除,可以使用del()方法,或者clear()删除所有键值对;pop()删除指定键值对,并返回对应的值对象。
4.popitem():随机删除和返回键值对,字典是无序可变序列,因此没有元素的排序顺序等;popitem弹出随机的项。
字典元素的访问
(1)通过【键】获得“值”
(2)通过get()方法获得值(推荐使用)
字典
字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”,包含:"键对象"和“值对象”。可以通过“键对象”实现快速获取,删除,更新对应的“值对象”。“键”不可重复。
字典的创建
(1)通过{},dict()函数创建字典。
(2)zip()
(3)通过fromkeys创建值为空的字典
生成器推导式创建元组
生成器推导式生成的不是列表也不是元组,而是一个生成器对象。
元组的元素访问和计数
元组排序
zip():将多个列表对应位置的元素组合成为元组,并返回这个zip对象。
元组tuple
列表属于可变序列,可以任意修改列表中的序列。元组属于不可变序列,不能修改元组中的元素。所以,元组中没有增加元素,修改元素,删除元素相关的方法。
元组的创建
(1)通过()创建,小括号可以省略。
(2)通过tuple()创建元组。将字符串,range()序列,列表转化为元组。
元组的删除
多维列表
二维列表