简体   繁体   English

遇到相同的字典键值时如何增加计数器

[英]How to increase the counter when a same dictionary key value encountered

  • I am counting the occurrence of different DocumentCode which for now is BS, F16, SS which can be different.我正在计算不同DocumentCode的出现,目前它们是BS, F16, SS ,它们可能不同。
  • Input输入
ldct_input_body = {
  "ContextKey": "Mr.Dave",
  "Input": [
    {
      "DocumentCode": "BS",
      "ObjectFormat": "pdf"
    },
    {
      "DocumentCode": "BS",
      "ObjectFormat": "pdf"
    },
    {
      "DocumentCode": "SS",
      "ObjectFormat": "pdf"
    },
    {
      "DocumentCode": "F16",
      "ObjectFormat": "pdf"
    }
  ]
}
  • So I am creating a different dictionary by identifying the DocumentCode like below所以我通过识别下面的DocumentCode创建一个不同的字典
ldct_document_code = dict()
ldct_document_code['ObjectEntries'] = []

for lstr_multiple_input_object in ldct_input_body["Input"]:
    ldct_document_code['ObjectEntries'].append(lstr_multiple_input_object['DocumentCode'])
  • Output Output
{
  "ObjectEntries": [
    "BS",
    "BS",
    "SS",
    "F16"
  ]
}
  • Now, I am looking to increase the count depending upon how many Inputs of same DocumentCode are present现在,我希望根据存在多少相同DocumentCode的输入来增加计数
  • I had a hard-coded code for it like below我有一个硬编码代码,如下所示
for lstr_multiple_input_object in ldct_input_body["Input"]:
    if lstr_multiple_input_object["DocumentCode"] == "BS":
        lint_bank_statement_count += 1
        lint_total_no_of_object += 1
    elif lstr_multiple_input_object["DocumentCode"] == "F16":
        lint_form_16_count += 1
        lint_total_no_of_object += 1
    elif lstr_multiple_input_object["DocumentCode"] == "SS":
        lint_salary_slip_count += 1
        lint_total_no_of_object += 1
  • But I want it to accept dynamic value of ObjectEntries, get it and then compare it with the Input values.但我希望它接受 ObjectEntries 的动态值,获取它,然后将其与输入值进行比较。
  • Expected Output预计 Output
{
  "ObjectEntries": [
    "BS": 2,
    "SS": 1,
    "F16": 1
  ]
}

See if this simple code snippet solves your purpose:看看这个简单的代码片段是否能解决您的目的:

ldct_input_body = {
"ContextKey": "Mr.Dave",
"Input": [
    {
    "DocumentCode": "BS",
    "ObjectFormat": "pdf"
    },
    {
    "DocumentCode": "BS",
    "ObjectFormat": "pdf"
    },
    {
    "DocumentCode": "SS",
    "ObjectFormat": "pdf"
    },
    {
    "DocumentCode": "F16",
    "ObjectFormat": "pdf"
    }
]
}

ldct_document_code = {}
output_dict = {}
for x in ldct_input_body['Input']:
    for k, v in x.items():
        if v == "pdf": continue
        if output_dict.get(v, None) is None:
            output_dict[v] = 1
        else:
            output_dict[v] = output_dict[v] + 1
ldct_document_code['ObjectEntries'] = output_dict

print(ldct_document_code)

OUTPUT: OUTPUT:

{'ObjectEntries': {'BS': 2, 'SS': 1, 'F16': 1}}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM