python小技巧(1)

前言

我是搬代码匠,最近我学习到了一些python的新用法,当然附上参考链接:https://www.jianshu.com/p/223a734193f8

filter用法

这相当于一个过滤的作用:
若输入对象是一个list,那么也将返回个list

#!/usr/bin/python
# -*- coding: UTF-8 -*-

list = [1,2,3,4,5]
def cox(x):
    return x != 1

a = filter(cox,list)
print(a)
image.png

若输入个字符串,那么返回也是个字符串

#!/usr/bin/python
# -*- coding: UTF-8 -*-

str = "asdada"
def cox(x):
    return x != 'a'

a= filter(cox,str)
print(a)
image.png

若输入给tuple,那么返回将是tuple

#!/usr/bin/python
# -*- coding: UTF-8 -*-

tuple = ('s','w','e')
def cox(x):
    return x != 's'

a= filter(cox,tuple)
print(a)
image.png

map用法

无论你输入类型是什么,返回类型都是list
输入list

#!/usr/bin/python
# -*- coding: UTF-8 -*-

list = ['w','r']
def cox(x):
    return x + x

a= map(cox,list)
print(a)
image.png

输入str

#!/usr/bin/python
# -*- coding: UTF-8 -*-

str = 'wr'
def cox(x):
    return x + x

a= map(cox,str)
print(a)
image.png

输入tuple

#!/usr/bin/python
# -*- coding: UTF-8 -*-

tuple = ('s','w','e')
def cox(x):
    return x + x

a= map(cox,tuple)
print(a)

reduce

对list内元素迭代

#!/usr/bin/python
# -*- coding: UTF-8 -*-

def add(x,y):
  return x + y

a= reduce(add, range(1, 11))
print(a)

答案为55 ,1+2+3+4+5+6+7+8+9+10

lambda

匿名函数,可以省几行代码

#!/usr/bin/python
# -*- coding: UTF-8 -*-

g = lambda x: x * 2
print(g(3))

答案是6

这些函数,均有遍历的功能,可以代替for循环,大大减少代码行数

你可能感兴趣的:(python小技巧(1))