陈述
a = ['abc', 'efg', 'hij']
我想去
a = ['abc!', 'efg!', 'hij!']
但是显然没有使用的元素:
...因为它不是切肉刀,我想了解更多关于map
函数及其传递参数的方式。
所以我尝试附加一个!
使用map函数列表的所有元素。但在此之前,append
是一个list
方法,而不是一个str
方法。
b = map(list,a) # gives : a = [['a','b','c'],['d','e','f'],['h','i','j']]
a = map(list.append(['!']), b)
最后一个映射函数返回TypeError:
TypeError: append() takes exactly one argument (0 given)
我想知道是否可以将参数传递给map
使用的方法。感谢
使用列表理解
:
>>> a = ['abc', 'efg', 'hij']
>>> ["{}!".format(x) for x in a]
['abc!', 'efg!', 'hij!']
地图是如何工作的
map(函数,迭代器)
它一个接一个地接受元素,并对每个元素应用指定的函数
例子:
>>> def add_str(x):
... return x+"!"
...
>>> a
['abc', 'efg', 'hij']
>>> map(add_str, a)
['abc!', 'efg!', 'hij!']
map
接收两个参数,一个函数和一个列表。
它为每个项调用一次函数,并将当前项作为参数。
由于map
返回的内容,将字符串转换为列表并附加到列表中可能不是最佳选择,但您实际上可以使用运算符将字符串附加到一起。
您可以通过执行以下操作来实现您的目标:
map(lambda s: s + '!', a) # => ['abc!', 'efg!', 'hij!']
lambda
只是函数的另一种语法,其参数名为s,它返回s'!'
。
您可以通过以下代码获得预期结果:
a = ['abc', 'efg', 'hij']
map(lambda x: x + '!', a) # ['abc!', 'efg!', 'hij!']
map
的第一个参数是应用于第二个参数iterable
上所有项目的函数。您不能直接将参数传递给给定给map
的函数,但可以创建另一个传递参数的函数(或lambda
),就像上面的示例一样。
典型的列表理解
应该比map
更受青睐,因为它更明显你在做什么:
[x + '!' for x in a] # ['abc!', 'efg!', 'hij!']
使用,并希望将常量/参数传递给自定义映射器 我的目的地具有 Map 类型的字段
所以我试图建立一个简单的网站,这样工作。 我在这里怎么办?而不是扩展另一个HTTPServlett 谢谢你抽出时间
问题内容: 我是Hadoop的新手。我想从mapper类的map函数中的main函数(Java程序)访问命令行参数。请提出方法。 问题答案: Hadoop 0.20引入了新的MR API,新的(oahmapreduce软件包)和旧的MR API(oahmapred)之间没有太多功能差异,只是可以使用新API在映射器和化简器中提取数据。提到Arnon的是旧的API。 查看本文以使用新旧API传递参数
我了解在ES6中arrow函数是如何工作的,词法也是如此,但我想知道是否有人知道将参数传递给arrow函数的方法? 在ES5中,您可以简单地执行以下操作: 但是,在ES6中,如果使用箭头函数,如下所示: 变量返回一个对象,该对象与参数非常接近。 所以,我想知道是否有人有办法将参数传递给arrow函数? 我想也许我应该给一些关于我试图完成的事情的信息,也许如果上面的不可能,有人有更好的主意。 基本上
我正在结合Lombok和构建器模式使用MapSTRt。我有一个问题,即MapSTRt正在对生成的映射器函数中的所有参数进行显式空检查,并在所有参数为空的情况下提前退出,例如: 我想实现MapStruct不实现完整的空检查。即使所有参数都为null,它也应该设置整个生成器,并在生成器进行null检查(如果有)时调用build。