我正在编写一个工作脚本,需要能够创建一个数组哈希,检查哈希(或字典)中是否存在密钥,如果确实存在,我将汇总一些值从新行到现有哈希值。这是我在Perl中的代码,Python中的翻译是什么?
if (exists($rollUpHash{$hashKey}))
{
say("Same key found, summing up!")
$rollUpHash{$hashKey}[14] += $lineFields[14];
$rollUpHash{$hashKey}[15] += $lineFields[15];
$rollUpHash{$hashKey}[16] += $lineFields[16];
$rollUpHash{$hashKey}[17] += $lineFields[17];
$rollUpHash{$hashKey}[24] += $lineFields[24];
push @{$rollUpHash{$hashKey}}, $sumDeduct_NonDeduct_ytd;
# print %rollUpHash;
}
else
{
$rollUpHash{$hashKey} = \@lineFields;
}
答案 0 :(得分:6)
如果您只是检查密钥是否存在,则可以执行if "key" in your_dictionary
编辑:
要处理问题的非预期第二部分,关于将新值添加到数组中,您可以执行类似这样的操作
# -1 will give you the last item in the list every time
for key, value in nums.iteritems():
nums[key].append(value[-1]+value[-1])
答案 1 :(得分:3)
你也可以使用它
rollUpHash.get(key, None)
如果该键存在,则该函数返回该键的值,否则该函数将返回您指定的任何默认值(第二个参数)
if rollUpHash.has_key(hashkey):
print "Same key found, summing up!"
rollUpHash[hashkey][14] += lineFields[14]
...
...
rollUpHash[hashkey].append(sumDeduct_NonDeduct_ytd)
else:
rollUpHash[hashkey] = lineFields