supprimer les valeurs vides dans le dictionnaire
CONTRE
Mon code est le suivant:
new_dict = {k: v for k,v in d.items() if v != None}
Je dois supprimer les valeurs vides qui apparaissent comme ''
dans mon dictionnaire.
Je reçois actuellement la sortie:
'000B4662348C35B4': ['000B4662348C35B4', '', '', '', '', '', '2938717381', '5286676508', '7818174481', '2938717381', '4110479734', '9894624226', '9827417465', '9907632031', '2941365751', '1220277655', '7455720881', '88810260', '8441033464', '3992507902', '8464607083', '1201527184', '2861935553', '4110479734', '5789253700', '2637281600', '5603666228', '9126320955', '2431085055', '8833906919', '1565530436', '8340343124', '2029932640', '6334249086'],
ce n'est qu'un petit peu de la sortie mais vous devriez avoir l'idée. Je veux juste le ''
supprimer.
jusqu'à présent, j'ai essayé:
new_dict = {k: v for k,v in d.items() if v != ''}
new_dict = {k: v for k,v in d.items() if v}
tous ceux-ci impriment toujours la même sortie.
Andrej Kesely
Vous pouvez utiliser la compréhension de liste sur les valeurs de dictionnaire où vous filtrerez les éléments vides:
d = {'000B4662348C35B4': ['000B4662348C35B4', '', '', '', '', '', '2938717381', '5286676508', '7818174481', '2938717381', '4110479734', '9894624226', '9827417465', '9907632031', '2941365751', '1220277655', '7455720881', '88810260', '8441033464', '3992507902', '8464607083', '1201527184', '2861935553', '4110479734', '5789253700', '2637281600', '5603666228', '9126320955', '2431085055', '8833906919', '1565530436', '8340343124', '2029932640', '6334249086']}
d = {k: [i for i in v if i] for k, v in d.items()}
print(d)
Impressions:
{'000B4662348C35B4': ['000B4662348C35B4', '2938717381', '5286676508', '7818174481', '2938717381', '4110479734', '9894624226', '9827417465', '9907632031', '2941365751', '1220277655', '7455720881', '88810260', '8441033464', '3992507902', '8464607083', '1201527184', '2861935553', '4110479734', '5789253700', '2637281600', '5603666228', '9126320955', '2431085055', '8833906919', '1565530436', '8340343124', '2029932640', '6334249086']}
Remarque:
{k: v for k,v in d.items() if v != ''}
filtrera simplement les valeurs de dictionnaire qui ne sont pas égales à ''
, mais les valeurs de votre dictionnaire sont des listes.
EDIT: Sans liste ni compréhension de dict:
out = {}
for k, v in d.items():
tmp = []
for i in v:
if i != "":
tmp.append(i)
out[k] = tmp
print(out)