在for… in…循环中,常常涉及到依次取值迭代,就需要对列表的取值进行定义,用到range( )
函数。
range( )
函数的使用方法:
tips:range(起点,终点,步进)
函数是只包含起点,不包含终点;
range(10)
,默认 0 为起点,1 为步进;==range(0,10,1)
;range(0,20,2)
,为正常格式,常用于迭代。
列表切片:等同于range( )函数,也是只包括开始,不包括结束;
list[开始:结束]
,前后均可省略;list[开始:结束]
,开始、结束为负数时,表示倒着数开始和结束的位置,提取的整个列表仍保持原顺序;list[开始:结束:步进]
,结束省略,就一直包含到列表结尾;list[::-1]
,步进为-1时,表示列表颠倒
sort( ) 函数,列表排序:
a.sort()
,对列表进行原地排序,不创建新对象,a列表变化为排序后的列表;b=a.sorted(a)
,可产生排序后的序列副本,a列表不变,b为a排序后的列表;- 二级排序key:
a.sort(key=len)
,按照列表元素的长度来进行排序;
enumerate( )函数,专业术语:枚举对象的函数
实现功能:分别列出序列的数据和对应数据的位置(下标);enumerate(seq, index)
-
enumerate(seq)
,省略index
时,索引位置下标默认从 0 开始,
输出:0 seq[0]
1 seq[1]
…… -
当
enumerate(seq,index)
,包含index时,索引位置的下标从 index开始计数,
输出:
index seq[0]
index+1 seq[1]
……
bisect二分查找:查找列表元素在升序情况下的位置或插值
- bisect.bisect( ), 查找此元素(在升序状态下)应该插入的位置,并返回值;
- bisect.insort( ), 向应该插入的位置,插入此元素。