运算符及其优先级
运算符
指数:**
按位取反:~
乘除、取余、取整:*,/,%,//
加减:+/-
右移、左移运算符:>>,<<
位运算符(与,或,异或):&,|,^
比较运算符:<,==,>,<=,>=,!=,<>
赋值运算符:=,%=,/=,+=,-=,**=,//=
身份运算符:is,is not
成员运算符:in,not in
逻辑运算符:not,or,and
优先级
- 乘除优先于加减
- 位运算符和算术运算符>比较运算符>赋值运算符>逻辑运算符
- 复杂的表达式建议用小括号表示
序列
常见的序列有:
- 列表
- 元组
- 字符串
- 字典
- 集合
序列中存储的是对象地址(id),而不是对象的值(value),当序列被变量引用时,序列将自己的地址赋予变量
列表
列表时内置可变序列,是包含多个元素的有序连续的内存空间,列表用于存储任意数目,类型的数据。
列表的创建:
- 利用[]创建列表,e.g. a=[10,20,30]
- 利用list()方法创建,e.g. a=list() #创建一个空列表
e.g. a=list(range(3)) #a=[0,1,2]
上式中,range()可以很方便地创建整数列表
标准表达式:range(start,end,step) - 列表推导式
e.g. a=[x for x in range(5)] #a=[0,1,2,3,4]
列表元素增删
增删元素时,列表会自动进行内存管理,这可能涉及到列表元素的大量移动,效率较低。因此,除非必要情况下,一般只在列表的尾部增删元素,这样会节省时间,提高效率
增加元素的方法:
- append():原地修改列表对象,不创建新的列表对象,速度最快,推荐使用
- “+”连接列表元素:并非原地修改列表,而是创建了新的列表对象,效率较低,不推荐使用
- extend():将目标列表中的所有元素加到本列表尾部,不创建新的列表对象
- insert():将目标元素插入到列表对象的指定位置,不创建新的列表对象。当插入到非尾部位置时,会发生列表元素的移动,在涉及大量数据时,会影响处理速度,类似的方法还有remove(),del(),pop()
- 乘法扩展:多次重复原列表中的元素,创建新的列表对象
删除元素的方法:
6. del():删除指定位置的元素
7. pop():删除并返回指定位置的元素,默认为列表最后一个元素
8. remove():删除首次出现的元素,若元素不存在则抛出异常
列表成员资格判断
1)可以用 count() 函数计数,值为0时则指定元素不存在
2)可用用 in 来判断,if ele in list,若存在则返回True,否则返回False
列表切片操作slice
与字符串类似,标准形式:[start: end: step]
原则:提取的列表元素包含起始元素,但不包含终止元素,俗称“包头不包尾”。
[:]:提取整个列表
[start:]:从开头到结尾
[:end]:从开头到(结尾-1)
[::step]:从头到尾,步长为step
列表排序
列表排序在原基础上修改列表,不创建新列表对象
a.sort():对列表a中元素进行升序操作
a.sort(reverse=True):降序
random.shuffle(a):打乱a中元素的顺序,需要先导入random模块
创建新列表对象的排序:sorted()方法
sorted(a):创建一个新列表对象,其中的元素顺序为对a中元素升序排列的顺序
sorted(a,reverse=True):创建一个新列表对象,其中的元素顺序为对a中元素降序排列的顺序
其它:
- 求列表元素最大值:max(a)
- 求列表元素最小值:min(a)
- 求列表元素之和:sum(a)
etc.
元组
元组是不可变序列,不能修改其中的元素,元组支持:
- 索引访问
- 切片
- 连接
- 成员关系操作
- 比较运算
- 计数,求和,求最大最小值等运算
元组创建
7. ()小括号创建,小括号可省略 e.g. a=(10,20) or a=10, 20
注意:当元组中仅有一个元素时,创建时也不能省略逗号",",如(20, ),否则Python会把这认为是一个整数
8. tuple()方法创建
tuple(可迭代对象)
tuple():创建一个空元组
tuple(‘abc’) # (‘a’,‘b’,‘c’)
tuple()与list():
tuple()可接收列表,字符串,其它序列类型,迭代器等生成元组
list()可接收元组,字符串,其它序列类型,迭代器等生成列表
元组的访问、切片等操作类似于列表
元组的排序,只能使用内置函数sorted(tupleObj),并生成新的列表
e.g. a=(20,10,30),sorted(a)结果为[10,20,30]
zip()方法
zip(list1,list2,list3,…):将多个列表对应位置的元素组成元组,并返回这个zip对象
e.g. a=zip([1,2],[2,3],[4,5])
list(a)结果为 [(1,2,4),(2,3,5)]
若对应位置上有元素缺失,则该位置的元素不组成元组
e.g. a=zip([1,2,4],[2,4,6],[1,3])
list(a)结果为 [(1,2,1),(2,4,3)]