繁体   English   中英

从多列表字典中仅迭代一个字典列表

[英]Iterate only one dict list from multi list dict

我有这样一个列表的字典:

edu_options = { 'Completed Graduate School' : ['medical','litigation','specialist'...],

            'Completed College' : ['linguistic','lpn','liberal','chicano'... ],

          'Attended College' : ['general','inprogress','courseworktowards','continu'...],

我的原始代码没有尝试层次匹配:

for edu_level in edu_options: 
       for option in edu_options[edu_level]

                 if option in cleaned_string:
                        user =  edu_level
                        return user
                  else: continue

我正在将字符串与这些列表进行比较并返回键。 我想以分层方式进行。

 for edu_level in edu_options: 
        for option in edu_options[edu_level]:

            if cleaned_string in edu_options["Completed Graduate School"]: 
                  user = "Completed Graduate School"
                  return user                              

            elif cleaned_string in edu_options["Completed College"]:
                  user = "Completed College"
                  return user 

             elif option in cleaned_string:
                  user =  edu_level
                  return user

这些if语句可用于大多数比较str,但不会涉及少数情况。 对于第一和第二个if语句,我只想将其与相应的列表进行比较,例如“完成研究生院”。 有没有办法只遍历该列表而不使用另一个for循环? 就像是

Ex: string = Bachelor of Arts: Communication and Civil Service
    cleaned_string = bachelorofartscommunicationandcivilservice
    option = iterating through each item(str) of lists in edu_option 

我希望首先列出毕业生和大学名单,因为它们较小且更具体。 我要纠正的错误是edu_options中的另一个较大列表,其中包含与stred_string错误匹配的sub str。

这个怎么样:

for key, val_list in edu_options.items():
    if key == "Completed Graduate School":
        if cleaned_string in val_list:
            #do something
    #Similarly for remaining key types

这样,您将检查专门限制在密钥类型上。

 for edu_level in edu_options: 
        for option in edu_options[edu_level]:

            if cleaned_string in edu_options["Completed Graduate School"]: 
                  user = "Completed Graduate School"
                  return user                              

            elif cleaned_string in edu_options["Completed College"]:
                  user = "Completed College"
                  return user 

             elif option == cleaned_string:
                  user =  edu_level
                  return user

暂无
暂无

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

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