Exercice Corrigé: Les listes en Python – Partie 6

Avec des exercices corrigés en Python, vous pratiquerez divers concepts du langage Python. Vous commencerez par des exercices Python de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
 
 

Exercice 1:

Ecrire un programme Python pour compresser deux listes de listes.

Exemple:

Listes originales :
[[1, 3], [5, 8], [9, 10]]
[[2, 4], [6, 7], [11, 12, 14]]

Liste compressée :
[[1, 3, 2, 4], [5, 7, 6, 8], [9, 11, 10, 12, 14]]
Solution:

# Créer deux listes contenant des sous-listes de nombres
liste1 = [[1, 3], [5, 8], [9, 10]]
liste2 = [[2, 4], [6, 7], [11, 12, 14]]

print("Listes originales:")

# Afficher le contenu de 'liste1'
print(liste1)

# Afficher le contenu de 'liste2'
print(liste2)

# Utilisez la fonction "map" pour ajouter les sous-listes correspondantes de "liste1" et "liste2"
res = list(map(list.__add__, liste1, liste2))

# Afficher un message indiquant la liste compressée
print("\nListe compressée:\n" +  str(res))
 

Exercice 2:

Écrire un programme Python pour compter le nombre de listes dans une liste de listes.

Exemple:

Liste originale :
[[1, 2], [6, 9], [8, 5]]

Nombre de listes dans la liste de listes est: 3
Solution:

liste = [[1, 2], [6, 9], [8, 5]]

print("Liste originale:")

# Afficher le contenu de la 'liste'
print(liste)

print("\nNombre de listes dans la liste de listes est:")

# Calculer le nombre de listes dans la liste
print(len(liste))
 

Exercice 3:

Ecrivez un programme Python pour trouver une liste avec des longueurs maximales et minimales.

Exemple:

Liste originale: [[0], [1, 3], [2, 1, 7]]
Liste avec longueur maximale: (3, [13, 15, 17])
Liste avec longueur minimale: (1, [0])
Solution:

# Définir une fonction "max_len_list" qui trouve la longueur maximale
def max_len_list(in_list):
    # Trouver la longueur maximale dans 'in_list'
    max_length = max(len(x) for x in in_list)
    # Trouver la liste ayant la longueur maximale dans "in_list"
    max_list = max(in_list, key=len)
    return (max_length, max_list)

# Définir une fonction "min_len_list" qui trouve la longueur minimale
def min_len_list(in_list):
    # Trouver la longueur minimale dans "in_list"
    min_length = min(len(x) for x in in_list)
    # Trouver la liste ayant la longueur minimale dans "in_list".
    min_list = min(in_list, key=len)
    return (min_length, min_list)

# Créer une liste
liste = [[0], [1, 3], [2, 1, 7]]

print("Liste originale:", liste)
print("Liste avec longueur maximale:", max_len_list(liste))
print("Liste avec longueur minimale:", min_len_list(liste))
 

Exercice 4:

Écrire un programme Python pour vérifier si une liste imbriquée est un sous-ensemble d’une autre liste imbriquée.

Exemple:

liste1 = [[1, 2], [5, 7], [9, 11], [3, 5, 7]]
liste2 = [[1, 2], [3, 5, 7]]
-> True
Solution:

liste1 = [[1, 2], [5, 7], [9, 11], [3, 5, 7]]
liste2 = [[1, 2], [3, 5, 7]]

#Vérifie si tous les éléments de 'liste2' sont contenus dans 'liste1'
print(all(map(liste1.__contains__, liste2)))
 

Exercice 5:

Écrire un programme Python pour compter le nombre de sous-listes qui contiennent un élément particulier.

Exemple:

Liste originale: [[1, 2], [3, 5], [1, 15], [1, 9, 7]]
Compter 1 dans la liste: 3
Solution:

liste = [[1, 2], [3, 5], [1, 15], [1, 9, 7]]
nbr = 1

ctr = 0
#compter le nombre d'occurrences de l'élément "nbr" dans "liste"
for i in range(len(liste)):
    if nbr in liste[i]:
        ctr += 1

print("Liste originale:", liste)
print("Compter", nbr, "dans la liste:",ctr)
 

Exercice 6:

Écrire un programme Python pour compter le nombre de sous-listes uniques dans une liste donnée.

Exemple:

Liste originale: [[1, 2], [4, 7], [1, 2], [11, 9, 12], [4, 7]]
Nombre de listes uniques de la liste: 
{(1, 2): 2, (4, 7): 2, (11, 9, 12): 1}
Solution:

liste = [[1, 2], [4, 7], [1, 2], [11, 9, 12], [4, 7]]

# Créer un dictionnaire vide "result" pour stocker les sous-listes et leur nombre
result = {}
# Parcourir les sous-listes de "liste"
for l in liste:
    # Utiliser une représentation en tuple de la sous-liste comme clé du
    # dictionnaire 'result' et ajouter 1 à la liste associée à cette clé
    result.setdefault(tuple(l), list()).append(1)
# Parcourir les éléments de "result" et remplacer la liste des nombres par leur somme
for a, b in result.items():
    result[a] = sum(b)

print("Liste originale:", liste)
print("Nombre de listes uniques de la liste:",result)
 

Exercice 7:

Écrire un programme Python pour mélanger les lettres d’une chaîne de caractères dans une liste donnée.

Exemple:

Liste originale: ['Java', 'PHP', 'Python']
Après avoir brouillé les lettres: ['aJav', 'PPH', 'hPyotn']
Solution:

# Importer la fonction "shuffle" du module "random"
from random import shuffle

# Define a function 'shuffle_word' that shuffles the characters in a word
def melange_word(in_list):
	# Convertir le mot saisi en une liste de caractères
	in_list = list(in_list)
	# Mélanger les caractères de la liste
	shuffle(in_list)
	# Convertit la liste mélangée en une chaîne de caractères et renvoyer-le
	return ''.join(in_list)

liste = ['Java', 'PHP', 'Python']

print("Liste originale:", liste)

# Utiliser une liste de compréhension pour appliquer la fonction "melange_word" à chaque mot de "liste" et afficher le résultat
result = [melange_word(word) for word in liste]

print("Après avoir brouillé les lettres:", result)
 

Exercice 8:

Écrire un programme Python pour trouver les valeurs maximale et minimale d’une liste hétérogène donnée.

Exemple:

Liste originale: ['Java', 9, 5, 4, 3, 'PHP', 'Python']
Valeurs maximale et minimale de la liste: (9, 3)
Solution:

# Définir une fonction "max_min_val" qui trouve les valeurs maximales et minimales d'une liste
def max_min_val(in_list):
    # Trouver les valeurs maximales et minimales des entiers dans 'in_list'
    max_val = max(i for i in in_list if isinstance(i, int))
    min_val = min(i for i in in_list if isinstance(i, int))
    return (max_val, min_val)

# Créer une liste contenant un mélange de valeurs entières et non entières
liste = ['Java', 9, 5, 4, 3, 'PHP', 'Python']

print("Liste originale:", liste)
print("Valeurs maximale et minimale de la liste:", max_min_val(liste))
 

Exercice 9:

Écrire un programme Python qui trouve les éléments communs à un même index dans trois listes.

Exemple:

[1, 2, 3, 4, 5, 6, 8]
[0, 2, 1, 3, 4, 5, 8]
[0, 2, 1, 3, 4, 5, 8]
Index communs des éléments des listes est:
[2, 8]
Solution:

# Définir une fonction "extract_el" qui trouve les éléments communs au même index dans trois listes
def extract_el(l1, l2, l3):
    result = []
    # Utilisez la fonction "zip" pour parcourir les éléments ayant le même index dans les trois listes
    for m, n, o in zip(l1, l2, l3):
        # Si les éléments à l'index actuel dans les trois listes sont égaux, ils sont ajoutés au 'result'
        if (m == n == o):
            result.append(m)
    return result

# Créer trois listes
liste1 = [1, 2, 3, 4, 5, 6, 8]
liste2 = [0, 2, 1, 3, 4, 5, 8]
liste3 = [0, 2, 1, 3, 4, 5, 8]

print(liste1)
print(liste2)
print(liste3)

print("Index communs des éléments des listes est:")
print(extract_el(liste1, liste2, liste3)) 
 

Exercice 10:

Écrire un programme Python pour trier une matrice donnée par ordre croissant selon la somme de ses lignes.

Exemple:

Matrice originale: [[1, 2, 3], [2, 4, 6], [1, 1, 1]]
Matrice triée par ordre croissant en fonction de la somme de ses lignes:
[[1, 1, 1], [1, 2, 3], [2, 4, 6]]
Solution:

# Définir une fonction qui trie une matrice par ordre croissant sur la base de la somme de ses lignes
def sort_matrix(M):
    # Utilisez la fonction "sorted" pour trier la matrice "M" sur la base de la somme de chaque ligne
    result = sorted(M, key=sum)
    return result

# Créer une matrice
matrice = [[1, 2, 3], [2, 4, 6], [1, 1, 1]]

print("Matrice originale:",matrice)
print("Matrice triée par ordre croissant en fonction de la somme de ses lignes:")
print(sort_matrix(matrice))
 

Éditeur de code Python: Testez votre code en ligne!


 

QCM Python

8 réflexions sur “Exercice Corrigé: Les listes en Python – Partie 6

  • janvier 21, 2025 à 2:50 pm
    Permalien

    Autre solution possible exercice 1 Partie 6:

    liste_1 = [[1, 3], [5, 8], [9, 10]]
    liste_2 = [[2, 4], [6, 7], [11, 12, 14]]
    
    liste = [a + b for a, b in zip(liste_1, liste_2)]
    print(liste)
    Répondre
  • janvier 21, 2025 à 3:00 pm
    Permalien

    Autre solution possible exercice 3 Partie 6:

    liste=[[0], [1, 3], [2, 1, 7]]
    print(f"Liste avec longueur maximale: {len(max(liste)), max(liste)}")
    print(f"Liste avec longueur minimale: {len(min(liste)), min(liste)}")
    Répondre
  • janvier 21, 2025 à 5:34 pm
    Permalien

    Exercice 4 Partie 6
    Autre solution possible:

    # Solution 1:
    print("Solution 1: ")
    liste1 = [[1, 2], [5, 7], [9, 11], [3, 5, 7]]
    liste2 = [[1, 2], [3, 5, 7]]
    result = False
    for i in liste2:
        if i in liste1:
            result=True
        else:
            result=False
    print(result)
    
    # Solution 2:
    print()
    print("Solution 2: ")
    liste1 = [[1, 2], [5, 7], [9, 11], [3, 5, 7]]
    liste2 = [[1, 2], [3, 5, 7]]
    print(all([i in liste1 for i in liste2]))
    Répondre
  • janvier 21, 2025 à 6:40 pm
    Permalien

    Exercice 5 parti 6
    Une autre solution :

    liste = [[1, 2], [3, 5], [1, 15], [1, 9, 7]]
    nbr = 1
    ctr = 0
    print(f"Compter, {nbr} dans la liste: {len([j for i in liste for j in i if j == 1])}")
    Répondre
  • janvier 21, 2025 à 6:42 pm
    Permalien

    Exercice 5 parti 6
    Une autre solution :

    print("Solution 1: ")
    liste = [[1, 2], [3, 5], [1, 15], [1, 9, 7]]
    nbr = 1
    ctr = 0
    print(f"Compter, {nbr} dans la liste: {len([j for i in liste for j in i if j == 1])}")
    Répondre
  • janvier 21, 2025 à 6:53 pm
    Permalien
    print("Solution 1: ")
    liste = [[1, 2], [3, 5], [1, 15], [1, 9, 7]]
    nbr = 1
    ctr = 0
    print(f"Compter, {nbr} dans la liste: {len([j for i in liste for j in i if j == 1])}")
    Répondre
  • janvier 22, 2025 à 10:57 am
    Permalien

    Autre solution possible:

    liste = [[1, 2], [4, 7], [1, 2], [11, 9, 12], [4, 7]]
    test=[]
    result=dict()
    
    for elemt in sorted(liste):
        if elemt not in test:
            result[tuple(elemt)] = liste.count(elemt)
            test.append(elemt)
    print(f''Liste originale: {liste}'')
    print(f''Nombre de listes uniques de la liste {result}'')
    Répondre
  • janvier 22, 2025 à 3:05 pm
    Permalien

    Exercice8 Partie6
    Autre solution possible:

    liste = ['Java', 9, 5, 4, 3, 'PHP', 'Python']
    result=[i for i in liste if isinstance(i, int)]
    print(f'Valeurs maximale et minimale de la liste: {(max(result), min(result))}')
    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *