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.