La manipulation de listes et dictionnaires dans différents langages de programmation
Au commencement était le tableau.
A une dimension dont l'indice commençait à 0 ou 1 (... et oui !).
Puis il y eu des tableaux de tableaux ... mais tous les sous-tableaux de même longueur.
Ces tableaux pouvaient contenir des entiers, des flottants ou du texte ... mais, attention, pas de mélanges !!!
Il fallait les déclarer avant la compilation ... et ils occupaient beaucoup de place, même vides.
Et ils étaient souvent trop petits à l'exécution.
Puis les choses s'améliorèrent ...
Du texte à la liste :
Tcl set L [split $T " "]
Python L = T.split(" ")
Javascript L = T.split(" ")
PHP $L = explode(" ", $T)
De la liste au texte :
Tcl set T [join $L " "]
Python T = " ".join(L)
Javascript T = L.join(" ")
PHP T = implode(" ", L)
Rajouter un élément à la liste :
Tcl lappend L "Coucou"
Python L.append("Coucou")
Javascript L.push("Coucou")
PHP array_push(L, "Coucou")
Extraire une sous-liste :
Tcl set P [lrange $L 8 45]
Python P = L[8:45]
Javascript P = L.slice(8, 45)
PHP P = array_slice(L, 8, 45-8+1)
En résumé on voit que tout le monde fait à peu près la même chose. Il n'y a que la notation qui change.
En Tcl on a toujours une notation fonctionnelle car les listes ne sont pas traitées en tant qu'objet.
Pour les autres langages c'est souvent un mix des deux types de notations, et il arrive que pour un même langage il y ait plusieurs manières possibles.
La base absolument nécessaire pour tout langage correct est de pouvoir manipuler facilement
les chaînes de caractères
les listes
et ...
les dictionnaires (ou array ou tableaux associatifs, ...)
Les listes servent à manipuler des éléments les uns après les autres dans un certain ordre, ordre qui est important.
Les dictionnaires c'est : associer une valeur à une clé.
La clé peut être un nombre une chaîne de caractères ou n'importe quoi d'autre ...
La valeur associée peut aussi être n'importe quoi.
L'important est d'avoir
valeur = dict(clé)
Pour un dictionnaire donné on a aussi : la liste des clés, la liste des valeurs
Attention ces listes ne sont pas toujours ordonnées, ... cela dépend du langage et même pour un langage donné du type de dictionnaire utilisé.
Pire, d'un appel à l'autre la liste peut ne pas avoir le même ordre.
Souvent les listes sont des tableaux (indicés par des entiers) et si l'indice peut être autre chose on a du coup un dictionnaire.
En Tcl on a list, dict et array
En Python on a list, dict, set (ensemble avec une seule fois chaque élément)
En Javascript on a list, dict, ...
En PHP on a des array indicés à la fois par des entiers ou (et même en même temps) par autre chose.
On peut évidemment avoir des listes de listes, des dictionnaires de listes, de dictionnaires ... à préciser pour chaque langage.
Comme tous ces langages sont des langages objet on peut bien sûr tout construire ou reconstruire comme on veut, ou utiliser des packages additionnels.