Les « 0 » ci-dessous représentent des éléments de véhicules, par exemple « 000 » est un véhicule de longueur 3 (un camion) et « 0 » une petite voiture.
route = "==000==0==00=000==00=0000===00=====000===00=000====0=0====00===="
Les « = » représentent la route et on imagine que les véhicules se déplacent vers la droite. Donc sur la route ci-dessus on a à gauche un camion et devant lui une petite voiture etc.
route = "==000==0==00=000==00=0000===00=====000===00=000====0=0====00====" def vehic(route): return len(list(filter(lambda v: v!="",route.split("=")))) # Version 2 def vehicv2(route): separ = route.split("=") nb = 0 for v in separ: if v!="" : nb+=1 return nb # Version 3 def vehicv3(route): return len([v for v in route.split("=") if v!=""]) def voit(route): return len(list(filter(lambda v: 0<len(v)<3,route.split("=")))) # Version 2 def voitv2(route): separ = route.split("=") nb = 0 for v in separ: if 0<len(v)<3 : nb+=1 # ou encore v=="0" or v=="00" return nb # Version 3 def voitv3(route): return len([v for v in route.split("=") if 0<len(v)<3]) def radar(route): return len(list(filter(lambda v: v=="=",route.split("0")))) # Version 2 def radarv2(route): dist=route.split("0") nb = 0 for v in dist: if v=="=" : nb+=1 # ou encore len(v)==1 return nb def simple(route): vehic=list(filter(lambda v: v!="",route.split("="))) return "".join(map(lambda v: "v" if len(v)<3 else "c", vehic)) # Version 2 def simplev2(route): vehic = [v for v in route.split("=") if len(v)>0] return "".join(["v" if len(v)<3 else "c" for v in vehic])