目录
1 Python基础
1.1 列表推导式
- append()函数:
- 作用:在列表结尾追加数据(追加的单个数据)
- 语法:
变量名.append(数据)
注意:不能一次追加多个数据,增加多个数据是将整个序列追加到序列。
- 列表推导式:也就是简化代码的。
- 形式:
列表名=[变量名 for 变量名 in range(start,end,step)]
,第一个变量名表示映射函数,它的输入值为后面一个变量名所指代的内容,第二个变量名表示迭代对象。
【例子】遍历0到10之间的偶数
# 方法1:带步长 a=[i for i in range(0,11,2)] # 方法2 :带if条件语句 b=[i for i in range(0,11) if i%2==0]
- 多层嵌套:第一个for语句是外层循环,第二个for语句是内层循环。
【例子】多层嵌套
c=[i+'$'+j for i in ['A','B'] for j in ['a','b']] # ['A&a', 'A&b', 'B&a', 'B&b']
- 形式:
- 语法糖:Syntactic sugar,也称糖衣语法,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员理解使用。
- 条件赋值语法糖:也是条件语句的三目运算, 形式为:
【例子】截断列表中超过 7的元素条件成立执行的表达式 if 条件 else 条件不成立执行的表达式
L=[0,12,3,14,5,6,7] d=[i if i<=7 else 7 for i in L] # [0, 7, 3, 7, 5, 6, 7]
1.2 匿名函数与map方法
- lambda表达式:
- 匿名函数:不关心函数名字,只关心映射关系。Python使用lambda来创建匿名函数。
- 使用情景:当函数只有一个返回值,且只有一句代码时,可以用lambda简写。
- 语法:
Lambda 形参:表达式
- 注意:
1.形参可以省略;
2.lambda可以接收任何数量的参数,但是返回值只有一个。
【例子】
# 没有参数 a=lambda :100 print(a()) # 这里要注意a是函数,要带() #匿名函数 (lambda :100)() #100 # 两个参数,有实参 (lambda a,b:a+b)(7,13) # 20 # 带条件语句 (lambda a,b:a if a>b else b)(1,2) # 2
- map函数:
- 作用:将可迭代对象的每一个元素作为函数的参数进行运算加工,直到可迭代序列的每个运算都加工完毕。
- 语法:
map(函数名,迭代对象)
【例子】输出偶数列表
【例子】多个输入值的函数映射# 匿名函数 [(lambda i:i*2)(x)for x in range(5)] # map函数 list(map(lambda i:i*2,range(5)))
list(map(lambda x,y:str(x)+'_'+y,range(5),list('abcde'))) # ['0_a', '1_b', '2_c', '3_d', '4_e']
1.3 zip对象与enumerate方法
- zip函数:
- 作用:用于将可迭代的对象中对应的元素打包成一个个元组,然后返回一个zip对象。通过 tuple, list可以得到相应的打包结果。
- 注意:如果迭代对象的元素个数不一致,则返回列表长度与最短的相同。
【例子】打包列表
【例子】循环迭代a=[1,2,3] b=[1,2,3,4,5] zipped=list(zip(a,b)) print(zipped) # [(1, 1), (2, 2), (3, 3)]
【例子】列表建立字典映射for i,j in zip(a,b): print(i,j) """ 1 1 2 2 3 3 """
dict(zip(a,b)) { 1: 1, 2: 2, 3: 3}
- enumerate函数:
- 作用:enumerate()用于将一个可遍历的数据对象(列表,元组或字符串等)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环中 。
- 语法:
enumerate(可遍历的对象,start=0)