Dans cet exercice vous devez réaliser une fonction compter_en_profondeur
qui prend en paramètre une liste et renvoie la quantité de nombre (float
et int
) présent dans la liste. La liste peut contenir tout type d’éléments et dans le cas où l’élément est un tuple ou une liste, la fonction devra également compter en profondeur les nombres. Il n’y a donc pas de limite concernant l’imbrication des listes et des tuples.
Exemples d’utilisation
liste_en_bazar = [12, 74, "peluche", "velo", 4, 3.0, -8]
>>> compter_en_profondeur(liste_en_bazar)
5
liste_en_bazar = [14, 2.21, ["docstring", 74, "cactus", {"chien": 8}], 74, (12, [47, 7.3])]
>>> compter_en_profondeur(liste_en_bazar)
7
liste_en_bazar = [14, 2.21, ["docstring", 74, "cactus", {"chien": 8}], 74, (12, [47, 7.3])] # Votre code ici 👇 def count_nombres(liste: list) -> int: nb_nombres = 0 for el in liste: ty = type(el) if ty in [int, float]: nb_nombres += 1 elif ty in [list, tuple]: nb_nombres += count_nombres(el) return nb_nombres print(count_nombres(liste_en_bazar))
from typing import Any liste_en_bazar = [14, 2.21, ["docstring", 74, "cactus", {"chien": "berger allemand"}], 74, (12, [47, 7.3])] # Votre code ici 👇 def compter_en_profondeur(bazard: Any) -> int: if isinstance(bazard, (tuple, list)): return sum(map(compter_en_profondeur, bazard)) elif isinstance(bazard, (int, float)): return 1 return 0
Lionel

liste_en_bazar = [14, 2.21, ["docstring", 74, "cactus", {"chien": "berger allemand"}], 74, (12, [47, 7.3])] def compter_en_profondeur(liste): if isinstance(liste, (list, tuple)): return sum(compter_en_profondeur(i) for i in liste) elif isinstance(liste, dict): return compter_en_profondeur(list(liste.items())) elif isinstance(liste, (int, float)): return 1 return 0
P4radigmShift

from collections.abc import Iterable liste_en_bazar = [14, 2.21, ["docstring", 74, "cactus", {"chien": "berger allemand"}], 74, (12, [47, 7.3])] def compter_en_profondeur(obj): result = 0 for i in obj: if isinstance(i, (int, float)): result += 1 elif isinstance(i, (list, tuple, dict, set)): result += compter_en_profondeur(i) return result
liste_en_bazar = [14, 2.21, ["docstring", 74, "cactus", {"chien": "berger allemand", "t": 8}], 74, (12, [47, 7.3])] # Votre code ici 👇 def compter_en_profondeur(liste): compteur = 0 for element in liste: if type(element) == int or type(element) == float: compteur += 1 else: if type(element) == list or type(element) == tuple: compteur += compter_en_profondeur(element) elif type(element) == dict: compteur += compter_en_profondeur(element) compteur += compter_en_profondeur(element.values()) return compteur print(compter_en_profondeur(liste_en_bazar))
Swidenn

liste_en_bazar = [14, 2.21, ["docstring",[2 ,[ 'o'], 'wow'], "cactus", {"chien": "berger allemand"}], 74, (12, [47, 7.3])] def compter_en_profondeur(List:list )-> int: count = 0 for el in List : if type(el) in [ int , float ]: count += 1 if type(el) in [list , tuple]: count += compter_en_profondeur(el) return count # Votre code ici 👇
SOUHAIL

def compter_en_profondeur(liste: list) -> int: compteur = 0 for element in liste: if isinstance(element, (int, float)): compteur += 1 elif isinstance(element, (list, tuple)): compteur += compter_en_profondeur(element) return compteur liste_en_bazar = [14, 2.21, ["docstring", 74, "cactus", {"chien": "berger allemand"}], 74, (12, [47, 7.3])]
liste_en_bazar = [14, 2.21, ["docstring", 74, "cactus", {"chien": "berger allemand"}], 74, (12, [47, 7.3])] # Votre code ici 👇 def compter_en_profondeur(une_liste): nbr = 0 for element in une_liste : if type(element) == int: nbr += 1 elif type(element) == float: nbr += 1 elif type(element) == list: nbr += compter_en_profondeur(element) elif type(element) == dict: nbr += compter_en_profondeur(element.keys()) nbr += compter_en_profondeur(element.values()) elif type(element) == tuple: nbr += compter_en_profondeur(list(element)) return nbr print(compter_en_profondeur(liste_en_bazar))
Brieux

liste_en_bazar = [12, 74, "peluche", "velo", 4, 3.0, -8] # Votre code ici 👇 def compteur_en_profondeur(liste ,somme=[]): for i in liste: if isinstance(i,(float,int)): somme.append(i) elif isinstance(i,(dict,list,tuple)): compteur_en_profondeur(i, somme) return len(somme) print(compteur_en_profondeur(liste_en_bazar))
Wail

liste_en_bazar = [14, 2.21, ["docstring", 74, "cactus", {"chien": "berger allemand"}], 74, (12, [47, 7.3])] # Votre code ici 👇 def compter_en_profondeur(alist): nbDigits = sum(isinstance(i, (int,float)) for i in alist) for i in alist: if isinstance(i, (list,tuple)): nbDigits = nbDigits+compter_en_profondeur(i) return nbDigits print(compter_en_profondeur(liste_en_bazar))
Euphorik

liste_en_bazar = [14, 2.21, ["docstring", 74, "cactus", {"chien": "berger allemand"}], 74, (12, [47, 7.3])] # Votre code ici 👇
Un instant...
Test avec les exemples d'utilisation
La fonction doit être capable de compter en profondeur les nombres présents dans une liste.
Bravo, tu as réussi cet exercice de code 🥳

Soumettre ma solution
Vous avez trouvé une solution alternative pour cet exercice ? Proposez votre solution à la communauté 👇
Seules les propositions différentes de la solution proposée par Docstring peuvent être envoyées.
Ma solution :
Mes notes
Sauvegardé