总第101篇
#常规写法
if a>b:
c=a
else:
c=b
#简洁写法
c=a if a>b else b
对一个列表中的每个元素执行某个操作,然后生成一个新的列表。代替掉了繁琐的for循环。
#常规做法
a=[-1,-2,1,2,3,4,5]
b=[]
for i in a:
if i>0:
b.append(pow(i,2))#求平方
print(b)
-----------------
[1, 4, 9, 16, 25]
#列表生成式
a=[-1,-2,1,2,3,4,5]
b=[pow(x,2) for x in a if x>0]
print(b)
-----------------
[1, 4, 9, 16, 25]
匿名函数与标准方式声明的函数区别在于,不需要使用 def 语句,也不需要一个名字来引用它,很简洁方便。
#常规函数
def test(x):
x=x*2
return x
test(10)
--
20
#匿名函数
test1=lambda x:x*2
print(test1(10))
--
20
#匿名函数也可以是多参数
test1=lambda x,y:x*y
print(test1(2,10))
--
20
map(function,args),map函数是对序列args中每个元素进行function操作,得到一个结果序列。
a = map(lambda x,y:x+y,[1,2,3],[3,2,1])
for i in a:
print(i)
--
4
4
4
#一般map函数会和list一起用,将结果转化为一个list
a =list(map(lambda x,y:x+y,[1,2,3],[3,2,1]))
print(a)
-------
[4,4,4]
#你还可以这样用
a=pd.Series([1,2,3])
a.map(lambda x:x*2)
-------
0 2
1 4
2 6
#请注意上述的lambda函数可以换成任意的函数
filter(function,iterable),filter俗称过滤器函数,顾名思义就是按照给定的函数function从序列iterable中过滤出相应的元素。
a = filter(lambda x:x>2,[1,2,3,4])
for i in a:
print(i)
--
3
4
#与list结合使用
a =list(filter(lambda x:x>2,[1,2,3,4]))
print(a)
-----
[3,4]
还有applay、reduce函数现在慢慢都被淘汰了,这里就不写了。还有更多好用的函数等待挖掘,以后持续更新。
你还可以看: