Qu'est-ce que j'essaie de faire est de vérifier si une entrée de chaîne est dans le dictionnaire, quelles valeurs sont dans la liste: C'est le dictionnaire. Je souhaite créer une fonction pour chaque clé: paire de valeur: p> la fonction suivante pour être pour la clé - "socio" et ainsi de suite. Le problème est que cette fonction renvoie toujours la déclaration d'autre. Lorsque je change de «mobile_panel» avec la valeur, je reçois le résultat correct, mais cela ne fonctionne que pour la première clé: paire de valeur. Comment puis-je sélectionner les différentes clés et leurs valeurs? Il me manque quelque chose, mais je ne peux pas le comprendre. P> p>
4 Réponses :
Vérifiez ceci:
def mob_panel_in_list(string): for key, value in data_dict.items(): if string in key,value: return string else: return string + '_not_valid'
Si vous souhaitez le faire fonctionner pour une seule clé à la fois, et que les valeurs sont toujours des listes, vous pouvez le faire:
def value_in_dict_list(string, mydict): out_dict = {} for k, val in mydict.items(): if string in val: out_dict[k] = string else: out_dict[k] = string + '_not_valid' return out_dict value_in_dict_list('APPP', data_dict) {'socio': 'APPP_not_valid', 'mobile_panel': 'APPP_not_valid'}
Étant donné que vous souhaitez créer des fonctions distinctes pour chaque touche du DAT_DICT ..
def mob_panel_in_list(panel): return panel if panel in data_dict['mobile_panel'] else panel+'_not_valid'
Essayez ceci:
>>> data_dict = {'mobile_panel': ["APP", "DTRAFFIC", "DSCHANGE", "SEARCH", "URL", "HTTP", "ALL"], 'socio': ["-20.000 inh", "20.000-50.000 inh", "50.000-100.000 inh", "100.000 inh or more"]} >>> is_string_in_dict('APP', data_dict, 'mobile_panel') # 'APP' is in 'mobile_panel' list => return 'APP' APP >>> is_string_in_dict('APPP', data_dict, 'mobile_panel') # 'APPP' is not in 'mobile_panel' list => return 'APPP_not_valid' APPP_not_valid >>> is_string_in_dict('APP', data_dict, 'socio') # 'APP' is not in 'socio' list => return 'APPP_not_valid' APP_not_valid >>> is_string_in_dict('APP', data_dict, 'missing_key') # 'missing_key' is not a valid key => return 'APP_not_valid' APP_not_valid
Pourriez-vous poster une sortie attendue?
@Vlemaistre Lorsque l'entrée est "App", la sortie sera la chaîne, si son "APPP '- App_not_valid
Vérifiez ma réponse, devriez vous donner cette sortie exacte.