python中的小魔法(一)

时间:2022-05-08
本文章向大家介绍python中的小魔法(一),主要内容包括if-else的简洁写法、列表生成式、lambda匿名函数、map函数、filter函数、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

总第101篇

if-else的简洁写法

#常规写法
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]

lambda匿名函数

匿名函数与标准方式声明的函数区别在于,不需要使用 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函数

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函数

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函数现在慢慢都被淘汰了,这里就不写了。还有更多好用的函数等待挖掘,以后持续更新。

你还可以看:

IPython的一些使用技巧