Outils pour utilisateurs

Outils du site


python:listes_et_dictionnaires

Listes et Dictionnaires

Listes

Opérations sur les listes

Créer une liste vide :

liste = []

Ajouter des éléments à la liste :

liste.append(23)

Nombre d'éléments dans la liste :

len(liste)

Trouver l'index d'un élément (Exception si n'existe pas) :

liste.index(23)

Enlever un élément selon sa valeur (Exception si n'existe pas, et si plusieurs seul le premier est enlevé):

liste.remove(23) 

Enlever un élément selon son index :

del liste[2]

Enlever plusieurs éléments selon une plage d'index :

liste = [10, 15, 16, 18, 22, 24, 31]
 
del liste[2:5]  # résultat : [10, 15, 24, 31]

Tri d'une liste

liste.sort()

Trier une liste d'objets selon une propriété :

class Article:
 
  def __init__(self, ref, denom):
    self.ref = ref
    self.denom = denom
 
liste = []
liste.append(Article(1023, 'disque dur'))
liste.append(Article(1018, 'processeur'))
liste.append(Article(1045, 'carte mere'))
liste.append(Article(1039, 'lecteur cd'))
 
# Trier selon la propriété ref
liste.sort(lambda x, y: x.ref - y.ref) 

Trier une liste de dictionnaires :

liste = [
    { "ref": 1023, "denom": "disque dur" },
    { "ref": 1018, "denom": "processeur" },
    { "ref": 1045, "denom": "carte mere" },
    { "ref": 1039, "denom": "lecteur cd" },
]
 
# Trier selon la propriété denom
liste_denom = sorted(liste, key = lambda x: x['url'])

Pour trier sur d'autres types de propriétés ou sur une combinaison de propriétés, remplacer la fonction lambda par l'appel à une autre fonction, prenant deux objets en paramètre, et renvoyant

-1 si x < y
0 si x = y
1 si x > y

Conversion en chaîne

Avec la méthode join() d'une chaîne :

a = ['un', 'deux', 'trois']
b = ",".join(a)
 
# Résultat :
# 'un, deux, trois'

Si la liste contient des nombres :

a = [1, 2, 3]
b = ", ".join([str(x) for x in a])
 
# Résultat :
# '1, 2, 3'

Parcourir une liste

Parcours simple :

numbers = ['one', 'two', 'three']
 
for num in numbers:
    print(num)
 
# one
# two
# three

Parcours avec énumération :

numbers = ['one', 'two', 'three']
 
for i, num in enumerate(numbers):
    print(i, num)
 
# 0 one
# 1 two
# 2 three

Dictionnaires

dico = {}
dico['nom']    = 'Dupont'
dico['prenom'] = 'Albert'
 
print dico             # => {'nom': 'Dupont', 'prenom': 'Albert'}
 
print dico['prenom']   # => 'Marc'
ages = {'marc': 33, 'david': 26, 'nathalie':30}
 
print ages['marc']       # => 33
print ages['nathalie']   # => 30

Supprimer un élément d'un dictionnaire :

del ages['david']
print ages   # => {'nathalie': 30, 'marc': 33}

Liste des clés et des valeurs du dictionnaire :

print dico.keys()     # => ['nom', 'prenom']
print dico.values()   # => ['Dupont', 'Albert']

Tester si certaines clés existent dans le dictionnaire :

if 'adresse' in dico:  # => faux
    pass
 
if 'prenom' in dico:   # => vrai
    pass

Lire une valeur du dictionnaire, ou une valeur par défaut si la clé n'existe pas :

dico = { 'marque': 'Toyota', 'annee': 2015)
a = dico.get('marque',  'Inconnue')          # => 'Toyota'
b = dico.get('couleur', 'Rouge')             # => 'Rouge'

Parcourir toutes les valeurs d'un dictionnaire :

codesDechets = {
  201: u"Manque de mousse",
  202: u"Début/Fin de bobine",
  203: u"Manque de joint",
  204: u"Débordement mousse",
  205: u"Griffes"
}
 
for code in codesDechets:
  print(code, codesDechets[code])
python/listes_et_dictionnaires.txt · Dernière modification: 2022/11/24 06:13 par marclebrun