标签: map-function

Python如何减少元组列表?

我能够使用mapsum实现这个功能,但如何使用reduce

有两个列表:a,, b它们具有相同数量的值.我想算一算

a[0]*b[0]+a[1]*b[1]+...+a[n]*b[n]
Run Code Online (Sandbox Code Playgroud)

我写的工作版本map

value =  sum(map(lambda (x,y): x*y, zip(a, b)))
Run Code Online (Sandbox Code Playgroud)

怎么用reduce呢?我写:

value =  reduce(lambda (x,y): x[0]*y[0] + x[1]*y[1], zip(a, b)))
Run Code Online (Sandbox Code Playgroud)

我收到错误" TypeError: 'float' object is unsubscriptable".

任何人都可以对此有所了解吗?

python reduce sum map-function

10
推荐指数
3
解决办法
1万
查看次数

使用map函数在Javascript中创建关联数组

我有一个具有以下格式的对象数组

[{'list': 'one', 'item': 1}, 
 {'list': 'one', 'item': 2},
 {'list': 'one', 'item': 3},
 {'list': 'two', 'item': 1},
 {'list': 'two', 'item': 2}]
Run Code Online (Sandbox Code Playgroud)

我想像这样改造它

[{'one': [1, 2, 3]},
 {'two': [1, 2]}]
Run Code Online (Sandbox Code Playgroud)

我怎么能用Array.map函数呢?这是最好的选择吗?

javascript arrays associative-array map-function

10
推荐指数
2
解决办法
5294
查看次数

映射修改Swift 2.2(3.0)中的对象数组

我希望能够map在Swift中使用Swift 来修改我的对象数组,而不需要遍历每个元素.

在此之前能够做到这样的事情(这里有更多细节描述:

gnomes = gnomes.map { (var gnome: Gnome) -> Gnome in
    gnome.age = 140
    return gnome
}
Run Code Online (Sandbox Code Playgroud)

感谢Erica Sadun和其他人,新提案已经完成,我们现在正在摆脱C风格的循环并var在循环中使用.

在我的情况下,我首先得到一个警告,以删除varin然后一个错误我gnome是一个常数(自然)

我的问题是:我们如何更改一个map或新的样式循环中的数组,以便为Swift 3.0做好充分的准备?

arrays swift map-function

10
推荐指数
2
解决办法
1万
查看次数

使用Python中的List Comprehension映射嵌套列表?

我有以下代码用于在Python中映射嵌套列表以生成具有相同结构的列表.

>>> nested_list = [['Hello', 'World'], ['Goodbye', 'World']]
>>> [map(str.upper, x) for x in nested_list]
[['HELLO', 'WORLD'], ['GOODBYE', 'WORLD']]
Run Code Online (Sandbox Code Playgroud)

这可以单独使用列表理解(不使用map函数)吗?

python list-comprehension list nested-lists map-function

9
推荐指数
2
解决办法
9465
查看次数

蟒蛇; 异常识别地图()

我正在做一些通用数据的 pyplotting 并将其从功率值转换为dB值.由于这些值来自系统,因此0用作"此处有用数据结束"指标(数学的性质,而不是定义的值).

我通常的处理方法是在try/except中包含转换并返回默认的"low"值,例如

def f(value):
    try:
        return convert(value)
    except ValueError:
        return -140 #implementation specific, don't worry
Run Code Online (Sandbox Code Playgroud)

对于我的框架中90%的使用情况,这是很好的和花花公子,除了图形.

我很懒,所以我现在做的是:

pl.plot(xvals,map(f,yvals))
Run Code Online (Sandbox Code Playgroud)

这会正确地绘制数据,并且当数据结束时,会从悬崖上掉下来,这是预期的行为.但我想发生这样的是图形刚刚结束时,它满足了ValueError异常,并以F做掉()完全.

除了将地图分成一个循环,任何人都有任何好主意?

更新:

我正在使用Pylab/MatplotLib"端点"是执行依赖的; 有时上述并不重要,因为没有"坏"值.这一切都是为了让我懒惰并使用matplotlibs图缩放而不是基于ydata的min来重置动态ylim(在这种情况下我不做atm,只是ylim(-140).)

关于答案的模糊重要更新:unutbu的答案就是我实际将用于实现的内容,因为(在问题依赖项中没有提到),因为在这个经常使用的函数中引发StopIteration会对无关紧要的问题造成严重破坏控制逻辑,而不是将所有其他实例放在try-excepts中; 有时候-inf比你想象的更有意义.

感谢大家的速度非常快,我为在QuestionFail的unutbu道歉.

python functional-programming exception-handling exception map-function

9
推荐指数
1
解决办法
2736
查看次数

Python 3将地图字典更新方法更新为其他字典列表

在Python 2中,我可以执行以下操作:

>> d = {'a':1}
>> extras = [{'b':2}, {'c':4}]
>> map(d.update, extras)
>> d['c']
>> 4
Run Code Online (Sandbox Code Playgroud)

在Python 3中得到一个KeyError:

>> d = {'a':1}
>> extras = [{'b':2}, {'c':4}]
>> map(d.update, extras)
>> d['c']
>> KeyError: 'c'
Run Code Online (Sandbox Code Playgroud)

我想在Python 3中实现与Python 2中相同的行为.

我知道Python 3中的map将返回一个迭代器(lazy evaluation和whatnot),必须迭代它才能更新字典.

我假设d['c']密钥查找会以某种方式触发映射迭代,但事实并非如此.

有没有pythonic方法来实现这种行为而不编写for循环,我发现与map相比,它是冗长的.

我想过使用列表推导:

>> d = {'a':1}
>> extras = [{'b':2}, {'c':4}]
>> [x for x in map(d.update, extras)]
>> d['c']
>> 4
Run Code Online (Sandbox Code Playgroud)

但它似乎并不像pythonic.

python dictionary python-2.7 python-3.x map-function

9
推荐指数
1
解决办法
1066
查看次数

Array.map想要将值映射到空

我有阵列: [1,2,3,4,5,6,7]

我想实现: [[1,2], [3,4], [5,6], [7]]

我在想Array.map,但它似乎无法映射到任何元素?

我有(使用Underscorejs):

arr.map(function(el, idx, arr) {
  if (idx%2 != 0) return null;
  if (idx == arr.length-1) return [el];
  return [el, arr[idx+1]]
}).compact();
Run Code Online (Sandbox Code Playgroud)

这仍然有点难看.如何实现转换(没有显式循环)?

javascript functional-programming map-function

9
推荐指数
2
解决办法
607
查看次数

如何在Clojure中使用reduce实现map

在本节末尾的"勇敢与真实的Clojure"中,减少了一个挑战:

如果你想要一个真正让你的头发恢复的运动,请尝试map使用reduce

事实证明,这比我想象的要困难得多(至少对我来说是一个Clojure初学者).经过几个小时,我想出了这个:

(defn map-as-reduce
  [f coll]
  (reduce #(cons (f %2) %1) '() (reverse coll)))
Run Code Online (Sandbox Code Playgroud)

这是一个更好的方法吗?我特别感到沮丧的是,我必须反转输入集合才能使其正常工作.它似乎有点不雅!

clojure map-function

9
推荐指数
3
解决办法
1740
查看次数

为什么此JavaScript映射不是无限循环?

我正在学习JavaScript。我写了这段代码来学习map函数。但是后来我感到困惑,为什么为什么不连续映射它,因为每个映射序列都会将一个新元素推入数组。它不应该在映射过程中继续推动新元素吗?为什么map函数仅对原始的三个元素运行,而对新的推入元素不运行?

我试图在节点环境中对其进行调试,并且该arr变量处于关闭状态。我知道闭包是什么,但我无法理解这里发生了什么。

let array = [1, 2, 3];

array.map((element) => {
  array.push(10);
  console.log(element);
});
Run Code Online (Sandbox Code Playgroud)

我希望输出应该是 1,2,3,10,10,10,10,10,10,10,10......10

但是实际输出仅为1,2,3

javascript arrays closures array-push map-function

9
推荐指数
2
解决办法
250
查看次数

如何映射异步生成器?

假设我们有一个异步生成器:

exports.asyncGen = async function* (items) {
  for (const item of items) {
    const result = await someAsyncFunc(item)
    yield result;
  }
}
Run Code Online (Sandbox Code Playgroud)

是否可以映射该生成器?本质上我想这样做:

const { asyncGen } = require('./asyncGen.js')

exports.process = async function (items) {
  return asyncGen(items).map(item => {
    //... do something
  })
}
Run Code Online (Sandbox Code Playgroud)

截至目前.map无法识别异步迭代器。

另一种方法是使用for await ... of ,但这远不如使用.map

javascript iterator node.js map-function async-iterator

9
推荐指数
1
解决办法
3847
查看次数