filter函数
filter(function, itetable)
生成一个迭代器从这些可迭代对象元素里面从符合函数的返回值为真。iterable参数可以是一个序列,一个支持可迭代的容器,或者一个迭代器,如果function这个形参没有,那么会删除所有为false的迭代元素。这个函数等价于 (item for item in iterable if function(item)) 这个生成器表达式。或者(item for item in iterable if item)
例
dic = {'k1': 10, 'k2': 100, 'k3': 50, 'k4': 90}
print(list(filter(lambda x: x[1] > 50, dic.items()))) # 把值大于50的由元祖组成的键值对过滤出来。
>
[('k2', 100), ('k4', 90)]
例
'''
filter(func, iterable) filter接收的是可迭代对象中的每个元素作为func的参数,返回的是bool值,函数中设置的是判断条件
返回的是在bool值为索引为True的元素
'''
shares={
'IBM':36.6,
'Lenovo':23.2,
'oldboy':21.2,
'ocean':10.2,
}
# 把shares中的价格大于20的股票过滤出来
# 1.用函数定义的方法:
def func(dict):
list1 = []
for i in dict:
list1.APPend((dict[i] > 20))
return list1
# 2.用lambda的方法
# 第一种方法
l2 = filter(lambda x: True if shares[x] > 20 else False, [i for i in shares])
# 其中x是接收的参数,也就是i,如果为False,filter函数会直接pass。也就是放True的条件上去就行了
# 第二种方法
l1 = filter(lambda x: shares[x] > 20, [i for i in shares])
# 把股票价格大于100的字典过滤出来
portfolio = [
{'name': 'IBM', 'shares': 100, 'price': 91.1},
{'name': 'AAPL', 'shares': 50, 'price': 543.22},
{'name': 'FB', 'shares': 200, 'price': 21.09},
{'name': 'HPQ', 'shares': 35, 'price': 31.75},
{'name': 'YHOO', 'shares': 45, 'price': 16.35},
{'name': 'ACME', 'shares': 75, 'price': 115.65}]
# 第一种方法:
li = filter(lambda x: x['price'] > 100, portfolio)
# x为portfolio中的每一个元素,如果x['price'] > 100为True则返回给li这个迭代器True对应的元素
# 第二种方法:
li9 = map(lambda x: x if x['price'] > 100 else None, portfolio)
a = list(li9)
def fun(l):
l1 = []
for i in l:
if i != None:
l1.append(i)
return l1
print(fun(a))
# 写代码,最终得到的是(每个元祖第一个元素>2,第三个*至少是4个。
l1 = [1,2,3,4,5,6]
l2 = ['oldboy','alex','wusir','太白','日天']
tu = ('**','***','****','*******')
b = filter(lambda x: x[0] > 2 and len(x[2]) > 3, zip(l1, l2, tu))
print(list(b))
相关阅读
Excel作为常用办公软件之一,在数据处理方面能力大家有目共睹,相信经常处理表格的人对它的强大也深有体会。主要原因之一,在于它并不
针对 《windows程序设计》第5版 第14章 win7 64位,创建一个MFC 对话框 程序, 在界面添加一个 按钮和 一个 spin control 控件 效果
获取键盘鼠标操作的函数(GetAsyncKeyState ())
首先介绍一下几个概念:按位与运算符"&":是双目运算符,其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果
header()函数的作用是:发送一个原始 HTTP 标头[Http Header]到客户端。标头 (header) 是服务器以 HTTP 协义传 HTML 资料到浏览器
MONTHS_BETWEEN (date1, date2) 用于计算date1和date2之间有几个月。 如果date1在日历中比date2晚,那么MONTHS_BET