python函数传递字典_如何将字典作为值传递给python中的函数

在python中,我使用的是mincemeat map-reduce框架

从我的map函数中我想在循环中产生(k,v),它会将输出发送到reduce函数(给出的样本数据是map函数的输出)

auth3 {'practical': 1, 'volume': 1, 'physics': 1}

auth34 {'practical': 1, 'volume': 1, 'chemistry': 1}

....

会有很多这样的条目;这只是一些例子.

这里,auth3和auth34是键,各自的值是字典项

当我尝试打印键,值时,在reduce函数内部,我得到“太多值来解压缩”错误.我的reduce函数看起来像这样

def reducefn(k, v):

for k,val in (k,v):

print k, v

请让我知道如何解决此错误.

解决方法:

首先,使用python内置字典定义您的字典

>>> dic1 = dict(auth3 = {'practical': 1, 'volume': 1, 'physics': 1},

auth34 = {'practical': 1, 'volume': 1, 'chemistry': 1} )

>>> dic1

{'auth3': {'practical': 1, 'volume': 1, 'physics': 1},

'auth34': {'practical': 1, 'volume': 1, 'chemistry': 1}}

然后,您的reduce函数可能会变为

def reducefn(dictofdicts):

for key, value in dictofdicts.iteritems() :

print key, value

到底,

>>> reducefn(dic1)

auth3 {'practical': 1, 'volume': 1, 'physics': 1}

auth34 {'practical': 1, 'volume': 1, 'chemistry': 1}

标签:python,dictionary,mincemeat

来源: https://codeday.me/bug/20190709/1410035.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值