我正在使用map
处理Python3中的列表。6:
def calc(num):
if num > 5:
return None
return num * 2
r = map(lambda num: clac(num), range(1, 10))
print(list(r))
# => [2, 4, 6, 8, 10, None, None, None, None]
我期望的结果是:[2, 4, 6, 8, 10]
。
当然,我可以使用filter
来处理map
结果。但是有没有办法让map
直接返回到我想要的结果?
使用map
本身时不需要,但您可以将map()
调用更改为:
r = [calc(num) for num in range(1, 10) if calc(num) is not None]
print(r) # no need to wrap in list() anymore
才能得到你想要的结果。
map
不能直接过滤掉项目。它为每项输入输出一项。您可以使用列表信息从结果中过滤掉No
。
r = [x for x in map(calc, range(1,10)) if x is not None]
(这只对范围内的每个数字调用calc
一次。)
旁白:没有必要写lambda num: calc(num)
。如果您想要一个返回calc
结果的函数,只需使用calc
本身。
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。 定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。 任何传入参数和自变量必须放在圆括号中
问题内容: 这是我之前的问题的后续工作,但是如果我在其中的映射如何在React的render()方法中调用函数。 示例(此代码在extended的类内): 无论我尝试什么,我总是最终得到“ this.getItemInfo()不是一个函数”。 我在函数内部进行了on操作,实际上是在引用Window对象,但是我似乎找不到改变它的方法。 我累了: 定义为函数getItemInfo(){..} 作为第二
问题内容: 我在不返回任何值时遇到问题。数据库中有符合此条件的帐户。有些困惑为什么他们不被退回。有什么建议? 问题答案: 不要使用。从语义上讲,这是违反直觉的。如果子查询中的 任何 值为,则不返回任何行。 使用代替; 或使用和:
本文向大家介绍Python3 中sorted() 函数的用法,包括了Python3 中sorted() 函数的用法的使用技巧和注意事项,需要的朋友参考一下 描述 sorted() 函数对所有可迭代的对象进行排序操作。 语法 sorted(iterable, key=None, reverse=False) iterable – 可迭代对象。 key – 主要是用来进行比较的元素,只有一个参数,具
主要内容:使用 delete() 函数从 map 中删除键值对,清空 map 中的所有元素Go语言提供了一个内置函数 delete(),用于删除容器内的元素,下面我们简单介绍一下如何用 delete() 函数删除 map 内的元素。 使用 delete() 函数从 map 中删除键值对 使用 delete() 内建函数从 map 中删除一组键值对,delete() 函数的格式如下: delete(map, 键) 其中 map 为要删除的 map 实例,键为要删除的 map 中键值对的键
本文向大家介绍C ++ STL中的map rend()函数,包括了C ++ STL中的map rend()函数的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将讨论C ++ STL中map::rend()函数的工作,语法和示例。 什么是C ++ STL中的映射? 映射是关联容器,它有助于按特定顺序存储由键值和映射值的组合形成的元素。在映射容器中,数据始终在内部借助其关联的键进行排序。映射容