Bonjour,
Il est bien ton code . Il y a plusieurs façons de faire mais pas forcément mieux ... En fait, la notion de 'mieux' correspond au contexte du programme et à ce que l'on souhaite. On peut vouloir privilégier l'économie en ressource mémoire , ou, la rapidité de traitement, ou, la visibilité du code...
Ceci dit, pour faire tourner ton moulin, je te montre un code avec filter()
def ajout(a):
return list(filter(lambda i: i>0, a)), list(filter(lambda i: i<0, a))
liste = [22,-77,-2,44,56,35]
pos, neg = ajout(liste)
print(f"Les valeurs positives sont :\n {pos}\nIl y a {len(pos)} valeurs")
print(f"Les valeurs negatives sont :\n {neg}\nIl y a {len(neg)} valeurs")
Avantage de ce code: ne crée pas de listes intermédiaires , écriture courte et compréhensible ---> économie des ressources mémoire du pc
Inconvénient : parcours 2 fois la liste