草庐IT

shift-reduce

全部标签

python - 如何在元组列表上使用 reduce 函数?

我有这个元组列表:a=[(1,2),(1,4),(1,6)]我想使用reduce函数来获得这个结果:(3,12)我试过:x=reduce(lambdax,y:x+y,a)但是我得到一个错误...我想将每个元组的第一个索引中的所有元素相加,然后将第二个元素相加。 最佳答案 如果你希望reduce的输出是一个元组,那么所有的中间结果也应该是一个元组。a=[(1,2),(1,4),(1,6)]printreduce(lambdax,y:(x[0]+y[0],x[1]+y[1]),a)输出(3,12)编辑如果你想在列表为空时得到(0,0)a

python - 在字典列表中使用 'reduce'

我正在尝试编写一个简单的Python函数,该函数对具有likes键的所有值求和。我正在为这项任务进行函数式编程。因此,我需要使用list-comprehension、map、filter或reduce。在这种情况下,我认为reduce是一个合理的选择。defsum_favorites(msgs):num_favorites=reduce(lambdax,y:x["likes"]+y["likes"],msgs)returnnum_favoritescontent1={"likes":32,...}content2={"likes":8,...}content3={"likes":16,

python - pandas stack and unstack performance reduced after dataframe compression 并且比 R 的 data.table 差很多

这个问题是关于在堆叠和取消堆叠操作期间提升Pandas的性能。问题是我有一个大数据框(~2GB)。我关注了thisblog成功将其压缩到~150MB。但是,我的入栈和出栈操作会花费无限长的时间,以至于我必须终止内核并重新启动所有程序。我也用过R的data.table包,飞起来了,我在SO上对此进行了研究。似乎有人在Dataframeunstackperformance-pandas上指向map-reduce线程,但我不确定它有两个原因:stack和unstack在未压缩的情况下在pandas中运行良好,但由于内存问题,我无法在我的原始数据集上执行此操作。R的data.table很容易(

python - hadoop map reduce 永远完成

我是mapreduce世界的新手,我已经完成了一项工作,鉴于这是一项相对较小的任务,似乎需要很长时间才能完成,我猜有些事情没有按计划进行。我正在使用hadoop2.6版,这里收集了一些我认为可以提供帮助的信息。mapreduce程序本身很简单,所以我不会在这里添加这些程序,除非有人真的希望我提供更多见解-为mapreduce运行的python代码与此处相同-http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/.如果有人可以提供有关问题所在或原因的线索,那就太好了。提前致谢

python - 运行时警告 : invalid value encountered in reduce

将numpy更新到版本1.14.1后,我在执行任何命令(例如键入1+1)后收到以下警告消息:/home/username/anaconda3/lib/python3.6/site-packages/numpy/core/_methods.py:26:RuntimeWarning:invalidvalueencounteredinreducereturnumr_maximum(a,axis,None,out,keepdims)现在有人知道问题出在哪里吗?我该如何解决? 最佳答案 我知道我迟到了大约五个月,但我的回答可能对其他人有帮助。

python - Shift + Return 在 python 中插入换行符

我正在尝试获取使用Return发送文本并使用Shift+Return插入换行符的典型IM客户端的行为。有没有一种方法可以在Python中以最小的努力实现这一点,例如使用readline和原始输入? 最佳答案 好的,我听说它也可以通过readline以某种方式完成。您可以导入readline并在配置中将您想要的键(Shift+Enter)设置为一个宏,该宏将一些特殊字符放在行尾和换行符处。然后你可以在循环中调用raw_input。像这样:importreadline#IamusingCtrl+Ktoinsertlinebreak#(d

python - pygame 按键组合(ctrl + 键或 shift + 键)

我有一些发生keydown事件的python代码,我基本上想知道是否可以同时按下两个键,比如ctrl+a或类似的东西。这可能吗,还是我必须找到解决方法? 最佳答案 使用pygame.key.get_mods()获取特殊键的状态,例如Control或Shift。get_mods()给出一个整数,你必须使用按位运算符将它与常量进行比较,如KMOD_SHIFT参见文档:pygame.key编辑:示例importpygameimportpygame.localspygame.init()screen=pygame.display.set_m

Python - 如何编写更高效的 Pythonic reduce?

我正在尝试构建一个非常轻量级的Node类来用作基于Python的层次结构搜索工具。请参阅下面的定义。fromfunctoolsimportreducefromoperatorimportor_classNode:def__init__(self,name):self.name=nameself.children=[]defadd_child(self,child_node):self.children.append(child_node)defcontains(self,other_node):ifself==other_node:returnTrueelifother_nodeins

python - 如何在字典中使用 reduce

我在理解如何在python中将reduce与字典一起使用时遇到了一些问题。例如,我有以下字典。{1:3,2:1,3:2}我正在尝试计算以下内容:s=0foriinh:s+=h[i]*(h[i]-1)这按预期工作(我得到:8),但我尝试将其转换为reduceparadigm失败了:reduce(lambdax,y:x+y*(y-1),h),但我得到了错误的答案。我假设这是因为我使用的是键,而不是值。如何转换我的代码以正确减少? 最佳答案 您需要迭代字典,同时将其初始值设为零。请注意,遍历字典实际上是遍历键,因此您需要索引字典以获取值r

python - 使用 Hadoop Streaming 和 Python 在 Map Reduce 中进行叉积

我正在学习Python和Hadoop。我使用pythong+hadoopstreaming完成了官方网站提供的设置和基本示例。我考虑过实现2个文件的连接。我完成了equi-join检查两个输入文件中是否出现相同的键,然后它按顺序输出键以及文件1和文件2中的值。相等连接按预期工作。现在,我希望进行不等式连接,这涉及在应用不等式条件之前找到叉积。我正在使用相同的映射器(我需要更改它吗)并且我更改了缩减器以便它包含一个嵌套循环(因为file1中的每个键值对都必须与file2中的所有键值对匹配)。这是行不通的,因为您只能通过一次流。现在,我想到了在reducer中存储“一些”值并比较它们的选项