前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中的小魔法(一)

python中的小魔法(一)

作者头像
张俊红
发布2018-04-11 15:25:05
5010
发布2018-04-11 15:25:05
举报
文章被收录于专栏:张俊红

总第101篇

if-else的简洁写法

代码语言:javascript
复制
#常规写法
if a>b:
    c=a
else:
    c=b

#简洁写法    
c=a if a>b else b

列表生成式

对一个列表中的每个元素执行某个操作,然后生成一个新的列表。代替掉了繁琐的for循环。

代码语言:javascript
复制
#常规做法
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 语句,也不需要一个名字来引用它,很简洁方便。

代码语言:javascript
复制
#常规函数
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操作,得到一个结果序列。

代码语言:javascript
复制
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中过滤出相应的元素。

代码语言:javascript
复制
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的一些使用技巧

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 俊红的数据分析之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • if-else的简洁写法
  • 列表生成式
  • lambda匿名函数
  • map函数
  • filter函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档