为了账号安全,请及时绑定邮箱和手机立即绑定

根据相同值出现的次数创建字典键

根据相同值出现的次数创建字典键

尚方宝剑之说 2023-06-20 15:42:33
我有一个如下的字典,如果发现相同的值 more tahn once 则必须使用增量编号创建字典键。TT = {                "TYPE_1" : ['ERROR'],                "TYPE_2": ['FATAL'],                "TYPE_3"  : ["TIME_OUT"],                "TYPE_4" : ['SYNTAX'],                "TYPE_5" : ['COMPILE'],          }  m1 = "ERROR the input is not proper"  m2 = "This should have not occured FATAL"  m3 = "Sorry TIME_OUT"  m4 = "SYNTAX not proper"  m5 = "u r late its TIME_OUT"值“TIME_OUT”在搜索中出现两次。  count = 0  for key in TT.keys():    print(key)    Key_1 = key        while key_1 in TT:      count = count+1      key_1 = key + "_{}".format(count)上面的代码给出错误 Key_1 未定义。预期输出:如果相同的值出现不止一次,则应使用增量编号“TYPE_3_1”创建字典键:[“TIME_OUT”], TT = {               "TYPE_1" : ['ERROR'],               "TYPE_2": ['FATAL'],               "TYPE_3"  : ["TIME_OUT"],               "TYPE_3_1" : ["TIME_OUT"],               "TYPE_4" : ['SYNTAX'],               "TYPE_5" : ['COMPILE'],        }请对此提出建议。
查看完整描述

1 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

如果您可以重新考虑一些数据结构,那么可以有一种更有效的方法来解决这个问题,但如果那不是一个选项,您可以尝试这个。


inputs = ["ERROR the input is not proper", 

"This should have not occured FATAL",

"Sorry TIME_OUT",

"SYNTAX not proper",

"u r late its TIME_OUT"]



basic_types = {

                "TYPE_1" : ['ERROR'],

                "TYPE_2": ['FATAL'],

                "TYPE_3"  : ["TIME_OUT"],

                "TYPE_4" : ['SYNTAX'],

                "TYPE_5" : ['COMPILE'],

        }


type_counts = {}

results = {}


for sentence in inputs:

    for basic_type in basic_types:

        if basic_types.get(basic_type)[0] in sentence:

            type_counts[basic_type] = type_counts.get(basic_type, 0) + 1

            

            if type_counts[basic_type] == 1:

                results[basic_type] = [basic_types.get(basic_type)[0]]

            else:

                results[basic_type+"_{}".format(type_counts[basic_type] - 1)] = [basic_types.get(basic_type)[0]]




print(results)


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信