list索引、切片
与字符串类似,从左往右正序读取,索引从0开始;若从右往左倒序读取,索引从-1开始。
切片:列表[start: end: step],默认截取方向为从左往右。
start(起始):默认值为0
end(结束):默认值为字符串最后一个元素
step(步长):默认值为1;若是负值,截取方向从右往左
常用函数
添加新元素
append
list1.append(‘g’),在list末尾添加元素
insert
list1.insert(2, ‘g’),在list中指定位置添加元素。若指定的下标不存在,则在末尾添加。
合并list
list1.extend(list2),将list2内容加在list1末尾,list2不改变。
list1 + list2,新生成一个列表存储结果,list1与list2不改变。
计数功能
list1.count(‘a’),显示设定元素在列表中的个数。
查找功能
list1.index(‘a’),返回左起第一个指定元素的索引,找不到报错。
删除元素
pop
弹出指定元素,并将其从列表中删除。若不指定,默认为最后一个元素。
remove
将列表中第一个指定元素删除,不返回值。
列表生成式
列表每一项+1
list_1 = [1,2,3,4,5]
[n+1 for n in list_1]
1-10的平方
[(n+1)**2 for n in range(10)]
[str((n+1)**2) for n in range(10)] #1-10之间所有数的平方构成字符串列表
列表每一项加前缀
list1 = ['a','b','c','d','a','f']
['app_%s'%n for n in list1]
[f'app_{n}' for n in list1]
列表中的每一个偶数项【过滤】
list_1 = [1,2,3,4,5]
[n for n in list_1 if n%2==0]
两个list的交集
[i for i in list_A if i in list_B]
生成器
#第一种方法:类似列表生成式
g = (x * x for x in range(10))
next(g)
for n in g:
print(n)
#第二种方法:基于函数
def factor(max_num): #带yield的函数是生成器,而不是函数了
...
yield n
g = factor(100)
next(g)
在调动next的时候,生成器不会从factor函数的开始执行,从上一步停止的地方继续执行,遇到yield后,返回要生成的数,此步就结束。