python第三天
一、运算符总结_位操作符_优先级问题
左移右移操作:
复合赋值运算符:
python不支持自增(++)和自减(–)
简单来说,运算符优先级规则:
1.乘除优先加减
2.位运算和算术运算>比较运算>赋值运算
二、列表_特点_内存分析
1.常用的序列结构:
字符串、列表、元组、字典和集合
2.序列中存储的是对象的地址,而不是对象的值
3.列表中的类型可以互不相同
4.列表的常用方法
5.列表的大小可变
三、创建列表的4种方式_推导式创建列表
列表创建方法:
1.基本语法[]创建
2.list()创建
a=list("shukun")
>>['s','h','u','k','u','n']
3.range()创建整数列表
range(start,end,step)
4.推导式生成列表
四、列表_元素的5种添加方式_效率问题
列表元素的增加和删除:
一般只在列表的尾部添加元素或删除元素,这样能防止列表元素的大量移动,这会提高列表的操作效率
1.append
原地修改列表对象,在列表尾部添加新的元素,速度最快,推荐使用
2.’+'运算符操作
并不是真正的尾部添加元素,而是创建新的列表对象,将原列表与新列表的组合复制到新的列表对象中,会涉及到大量的复制操作,对于操作大量数据不利
3.extend()方法
将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表
a=[10,20]
>>a.extend([50,60])
>>[10,20,50,60]
4.insert()插入元素
将制定元素插入到列表对象的任意制定位置,这样会让插入位置后面所有的元素进行移动,影响处理速度,类似的还有remove()、pop()、del()
a=[10,20,30]
>>a.insert(2,100)
>>a
>>[10,20,100,30]
5.乘法拓展
b=a*3
同样适用于字符串和元组
五、列表_元素删除的三种方式_删除本质是数组元素拷贝
1.del 删除
a=[100,200,300]
>>del a[1]
>>[100,300]
本质上还是元素的复制
2.pop()方法
删除并返回指定位置元素,如果未指定位置则默认删除最后一个位置
3.remove()方法
删除首次出现的指定元素,若不存在该元素抛出异常
六、列表_元素的访问_元素出现次数统计_成员资格判断
index()获得指定元素在列表中首次出现的索引
index(value,[start,[end]])
count()获得指定元素在列表中出现的次数
七、列表_排序_revered逆序_max_min_sum
修改原列表,不建新列表排序
a.sort() #默认是升序排列
a.sort(reverse=True) #降序排列
import random
random.shuffle(a) #打乱顺序
通过内置函数进行排序,返回新列表,不对原列表做修改
a=sorted(a) #默认升序排列
b=reversed(a) #逆序排序
八、元组_特点_创建的两种方式_tuple()要点
元组属于不可变序列
创建方式:
-
a=(1,2,3) 或者 a=1,2,3
-
b=tuple()
b=tuple([1,2,3])
九、元组_元素访问_计数方法_切片操作_成员资格判断_zip()
1.元组排序没有sort(),只有内置函数sorted(),并生成新的元组对象
2.zip
zip(列表1,列表2…)将多个列表对应位置的元素组合成为元组,并返回这个对象
3.元组中的数据类型可以是不同的
4.与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用