min
et max
de python, ni la notion **
pour fusionner les listes de dictionnaires.Écrire une fonction trouver_maximum
qui retourne le maximum d'une liste donnée.
Exemple d'entrée :
trouver_maximum([3, 7, 2, 9, 4]) # retourne 9
À compléter ci-dessous :
def trouver_maximum(liste):
max_val = liste[0]
for val in liste:
if val > max_val:
max_val = val
return max_val
# Test
trouver_maximum([3, 7, 2, 9, 4]) # retourne 9
Utiliser la fonction trouver_maximum
pour implémenter une fonction tri_inverse
qui trie une liste par ordre décroissant.
Exemple d'entrée :
tri_inverse([3, 7, 2, 9, 4]) # retourne [9, 7, 4, 3, 2]
À compléter ci-dessous :
def tri_inverse(liste):
resultat = []
while liste:
max_val = trouver_maximum(liste)
resultat.append(max_val)
liste.remove(max_val)
return resultat
# Test
tri_inverse([3, 7, 2, 9, 4]) # retourne [9, 7, 4, 3, 2]
Écrire une fonction tri_insertion_inverse
qui trie une liste par ordre décroissant en utilisant la méthode du tri par insertion.
Exemple d'entrée :
tri_insertion_inverse([3, 7, 2, 9, 4]) # retourne [9, 7, 4, 3, 2]
À compléter ci-dessous :
def tri_insertion_inverse(liste):
for i in range(1, len(liste)):
cle = liste[i]
j = i - 1
while j >= 0 and cle > liste[j]: # Note: condition inversée pour ordre décroissant
liste[j + 1] = liste[j]
j -= 1
liste[j + 1] = cle
return liste
# Test
tri_insertion_inverse([3, 7, 2, 9, 4]) # retourne [9, 7, 4, 3, 2]
À partir du dictionnaire suivant :
donnees = [
{"produit": "Pomme", "prix": 1.2},
{"produit": "Banane", "prix": 0.8},
{"produit": "Orange", "prix": 1.5},
{"produit": "Mangue", "prix": 2.0}
]
Créer une fonction tri_par_prix
qui trie la liste donnees
par prix croissant.
Exemple d'entrée :
tri_par_prix(donnees) # trie par prix croissant
À compléter ci-dessous :
def tri_par_prix(liste):
for i in range(len(liste)):
min_index = i
for j in range(i + 1, len(liste)):
if liste[j]['prix'] < liste[min_index]['prix']:
min_index = j
liste[i], liste[min_index] = liste[min_index], liste[i]
return liste
# Test
donnees = [
{"produit": "Pomme", "prix": 1.2},
{"produit": "Banane", "prix": 0.8},
{"produit": "Orange", "prix": 1.5},
{"produit": "Mangue", "prix": 2.0}
]
tri_par_prix(donnees)
À partir du nouveau dictionnaire suivant :
codes_barres = [ {"produit": "Pomme", "code_barre": "1234567890123"},
{"produit": "Banane", "code_barre": "9876543210987"},
{"produit": "Orange", "code_barre": "2345678901234"},
{"produit": "Mangue", "code_barre": "5678901234567"} ]
Créer une fonction def fusionner_listes
qui réalise une jointure entre la liste donnees
de la question 4 et la liste codes_barres
, en utilisant la clé commune "produit" pour fusionner les informations des deux listes dans une nouvelle liste ?
def fusionner_listes(liste1, liste2):
liste = []
for item1 in liste1:
for item2 in liste2:
if item1["produit"] == item2["produit"]:
fusion = {}
# Copier les clés et valeurs de item1
for key, value in item1.items():
fusion[key] = value
# Copier les clés et valeurs de item2 (les valeurs de item2 écrasent celles de item1 en cas de conflit)
for key, value in item2.items():
fusion[key] = value
liste.append(fusion)
return liste
# Test
codes_barres = [ {"produit": "Pomme", "code_barre": "1234567890123"},
{"produit": "Banane", "code_barre": "9876543210987"},
{"produit": "Orange", "code_barre": "2345678901234"},
{"produit": "Mangue", "code_barre": "5678901234567"} ]
fusionner_listes(donnees, codes_barres)