为了账号安全,请及时绑定邮箱和手机立即绑定

python中的映射和比较

python中的映射和比较

qq_笑_17 2023-01-04 11:05:02
假设我有一个列表:foo_list = ["foo", None, "bar", 1, 0, None]我想将这个列表转换成一个布尔列表,说明哪些元素是None,比如results = [False, True, False, False, False, True]一个简单map的lambda会做:list(map(lambda a: a==None, foo_list))但我想知道我是否可以删除 lambda,并使其更简单,大致如下:list(map((==None), foo_list))这显然会引发错误,但其他函数式语言通常允许将运算符作为函数使用,而且从技术上讲,这个函数甚至没有柯里化(因为它具有所需的所有参数)。编辑:我知道 list comprehensions in Python,这可以解决为[(a==None) for a in foo_list],但这不是我的问题。
查看完整描述

1 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

我会说列表理解是 Pythonic 方式,但如果你真的想要,你可以做


import functools

import operator

foo_list = ["foo", None, "bar", 1, 0, None]

print(list(map(functools.partial(operator.is_, None), foo_list)))


查看完整回答
反对 回复 2023-01-04
  • 1 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号