Listes tuples::py

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Python — structures de données
Types list, tuple

Les listes sont des séquences mutables (leurs méthodes modifient l'objet d'origine), les tuples sont des séquences statiques. Cette page couvre aussi les conversions chaîne/liste et la compréhension de listes.

les methodes des listes ne renvoient rien mais modifie l'objet d'origine contrairement aux methodes des chaines

listes

ma_list = list()
ma_list = [0, 1, 2, 3]
ma_liste = [1, 3.5, "une chaine"]
  • ajouter
ma_liste.append(55) # ajoute 55 a la fin de la liste
  • insérer
ma_liste.insert(2, "c") # insère c à la 2e position de la chaine
  • concatener
ma_liste.extend(maliste2)
ma_liste+=maliste2
ma_liste + maliste2
  • suppression
del ma_liste[2]
ma_liste.remove(2)
  • lire
for i, elt enumerate(ma_liste):
 print("A l'indice {} se trouve {}".format(i, elt))
for elt in enumerate(ma_liste):
 print(elt)

tuples

un tuple est une liste statique

tuple_vide =()
tuple_non_vide = (1,3,5)


methodes liées

  • des chaines aux listes
chaine = "bonjour a tous"
chaine.split(" ")
["bonjour", "a", "tous"]
  • des listes aux chaines
liste = ['bonjour', 'a', 'tous']
" ".join(liste)

exemple

if type(flottant) is not float: 
 raise TypeError("Le paramètre doit etre flottant")
flottant=str(flottant)
partie_entiere, partie_flottante = flottant.split(".")
return ",".join([partie_entiere, partie_flottante[:3]])


transformer une liste en paramètres de fonctions

liste_des_parametres = [1, 4, 9, 16, 25, 36]
print(*liste_des_parametres)


compréhension des listes

  • parcours simple
liste_origine = [0, 1, 2, 3, 4, 5]
[nb * nb for nb in liste_origine]
  • filtrage avec branchement conditionnel
liste_origine = [1, 2, 3, 4, 5, 6]
[nb for nb in liste_origine if nb%2==0]
qtt_a_retirer = 7
fruits_stockes = [15, 3, 18, 21]
[nb_fruits-qtt_a_retirer for nb_fruits in fruits_stockes if nb_fruits>qtt_a_retirer]
[8, 11, 14]

exemple :

inventaire = [
 ("pommes", 22),
 ("melons", 4),
 ("poires", 18),
 ("fraises", 76),
 ("prunes", 51)
 ]
# on change l'ordre des colonnes pour pouvoir trier
inventaire_inverse = [(qtt, nom_fruit) for nom_fruit,qtt in inventaire]
#on trie
inventaire = ([nom_fruit, qtt) for qtt, nom_fruit in sorted(inventaire_inverse, reverse=True)]
# ou
inventaire_inverse.sort(reverse=True)
inventaire = ([nom_fruit, qtt) for qtt, nom_fruit in inventaire_inverse)]

Voir aussi