python面试题十八(python如何在列表、字典中筛选数据)

1.过滤掉列表

[3,9,-1,10.-2…] 中负数
普通循环

def filter_l(data):
	res = []
	for i in data:
		if i > 0:
 			res.append(i)
 	return res

filter函数

def filter_l(data):
	return filter(lambda x: x >= 0, data)
列表解析
def filter_l(data):
	return [x for x in data if x >=0 ]

2.筛选出字典

{‘li_ming’:90,‘xiao_hong’:60,‘li_kang’:95,‘bei_men’:98} 中值高于90的项

def filter_l(data):
	return {k: v for k, v in data.items() if v > 90}

3.筛选出集合

{3,9,-1,10.-2…]中能被3整除的数

def filter_l(data):
	return {x for x in data if x % 3 == 0}

如何逻辑整理?

无论是解析器还是普通方法,都需要for循环,if判断,逻辑都是满足条件返回值,过滤出满足条件的值,无论是生成器还是解析器都满足这个格式:“ 返回值 for循环 if判断 “,通过lambda满足格 式:“lambda 输入值:条件, 格式化数据

发布了56 篇原创文章 · 获赞 0 · 访问量 1260

猜你喜欢

转载自blog.csdn.net/weixin520520/article/details/105453045