Listes
Vous pouvez construire une liste en plaçant n'importe quel nombre d'éléments entre crochets [], séparés par des virgules. Cela vous permet de créer des listes pouvant contenir différents types d'éléments, comme des chaînes de caractères, des nombres, ou même d'autres listes. Par exemple :
employee_counts = ['Finance', 12, 'Marketing', 23, 'Sales', 34]
Dans cet exemple, la liste employee_counts contient un mélange de chaînes de caractères et d'entiers, représentant les noms des services et leur nombre d'employés respectif.
De plus, vous pouvez créer une liste de listes en imbriquant des crochets. Cela peut être utile pour représenter des structures de données plus complexes. Par exemple :
department_budgets = [
['Marketing', 50000, 45000, 52000],
['Sales', 70000, 68000, 71000],
['HR', 30000, 32000, 31000]
]
Dans ce cas, department_budgets est une liste où chaque élément est lui-même une liste contenant le nom d'un service et son budget pour différents trimestres.
Pour combiner deux listes, vous pouvez utiliser l'opérateur +, qui concatènera les éléments des deux listes en une nouvelle liste. Par exemple :
quarter1_expenses = [30000, 40000, 35000]
quarter2_expenses = [32000, 42000, 36000]
combined_expenses = quarter1_expenses + quarter2_expenses
print(combined_expenses)
# Output: [30000, 40000, 35000, 32000, 42000, 36000]
Exercice
Créez un nouveau notebook Jupyter dans le dossier exercises du dossier Lists. Nommez-le favorite_Books_List.ipynb. Suivez ces étapes :
- Créer une liste : Créez une liste nommée
favorite_bookscontenant les titres de vos cinq livres préférés. - Afficher la liste : Affichez le contenu de la liste
favorite_books. - Créer une liste imbriquée : Créez une liste imbriquée nommée
favorite_books_detailsoù chaque sous-liste contient le titre, l'auteur et l'année de publication de chaque livre. - Afficher la liste imbriquée : Affichez le contenu de la liste
favorite_books_details.
Voici un exemple de code pour commencer. Vous pouvez le copier dans une cellule de code vide du notebook Jupyter.
Les ... dans l'exemple de code sont des espaces réservés. Remplacez-les par votre code.
# Creating a list of favorite books
favorite_books = ...
# Printing the list
print(...)
# Creating a nested list with book details
favorite_books_details = [
[...],
[...],
[...],
[...],
[...]
]
# Printing the nested list
print(...)
Solution
Voir la solution
# Creating a list of favorite books
favorite_books = [
"The Hobbit",
"Dune",
"The Catcher in the Rye",
"Brave New World",
"The Chronicles of Narnia"
]
# Printing the list
print("Favorite Books:")
print(favorite_books)
# Creating a nested list with book details
favorite_books_details = [
["The Hobbit", "J.R.R. Tolkien", 1937],
["Dune", "Frank Herbert", 1965],
["The Catcher in the Rye", "J.D. Salinger", 1951],
["Brave New World", "Aldous Huxley", 1932],
["The Chronicles of Narnia", "C.S. Lewis", 1950]
]
# Printing the nested list directly
print("\nFavorite Books Details:")
print(favorite_books_details)
Indexation des listes
Tout comme les chaînes de caractères, les listes peuvent être indexées (sous-scriptées), ce qui signifie que vous pouvez accéder à l'élément de votre choix dans la liste par sa position.
Comme le montre la figure ci-dessus, le premier élément d'une liste est indexé à 0, le deuxième à 1, et ainsi de suite. C'est ce qu'on appelle l'indexation positive. Pour accéder à l'élément de la liste à la position 0, vous pouvez utiliser la syntaxe suivante :
element = list_name[0]
Par exemple, si vous avez une liste nommée a_list, vous pouvez accéder à son premier élément comme ceci :
a_list = ['a', 'b', 'c', 'd', 'e']
first_element = a_list[0] # Output: 'a'
print(first_element)
Python prend également en charge l'indexation négative, qui vous permet d'accéder aux éléments depuis la fin de la liste. Les indices négatifs commencent par la droite : le dernier élément est indexé à -1, l'avant-dernier à -2, et ainsi de suite.
# Accessing elements with negative indexing
print(a_list[-1]) # Output: 'e'
print(a_list[-3]) # Output: 'c'
Considérons une liste imbriquée qui représente la structure organisationnelle d'une entreprise, avec ses départements et leurs subdivisions :
company_structure = [
['Marketing', 'Social Media', 'Content Creation', 'SEO'],
['Sales', 'B2B', 'B2C', 'Account Management'],
['Finance', 'Accounting', 'Budgeting', 'Payroll']
]
Vous pouvez accéder à des éléments spécifiques en utilisant l'indexation, par exemple :
print(company_structure[0][1]) # Output: 'Social Media'
print(company_structure[2][3]) # Output: 'Payroll'
Pour obtenir 'Social Media', nous utilisons company_structure[0][1]. Le premier index 0 accède à la première liste interne, et le second index 1 accède au deuxième élément de cette liste interne. Vous devez utiliser plusieurs indices.
Exercice
Dans le notebook Jupyter favorite_Books_List.ipynb, poursuivez votre pratique de l'indexation des listes en suivant ces étapes :
- Accédez et affichez le titre de votre troisième livre préféré de la liste
favorite_books. - Accédez et affichez l'auteur et l'année de publication de votre troisième livre préféré de la liste
favorite_books_details.
Solution
Voir la solution
# Access and print the title of the third favorite book
third_book_title = favorite_books[2] # Indexing starts at 0, so 2 is the third item
print("\nTitle of the third favorite book:")
print(third_book_title)
# Access and print the author and publication year of the third favorite book
third_book_details = favorite_books_details[2] # Indexing starts at 0, so 2 is the third item
third_book_author = third_book_details[1] # The author is the second element in the nested list
third_book_year = third_book_details[2] # The publication year is the third element in the nested list
print("\nAuthor and publication year of the third favorite book:")
print(f"Author: {third_book_author}")
print(f"Publication Year: {third_book_year}")
Découpage des listes
Tout comme les chaînes de caractères, les listes peuvent également être découpées. Le découpage d'une liste vous permet d'obtenir une sous-liste :
a_list = ['a', 'b', 'c', 'd', 'e']
print(a_list[0:3]) # items from position 0 (included) to 3 (excluded)
# output: ['a', 'b', 'c']
print(a_list[:3]) # items from the start to position 3 (excluded)
# output: ['a', 'b', 'c']
print(a_list[2:]) # items from position 2 (included) to the end
# output: ['c', 'd', 'e']
De plus, vous pouvez spécifier un pas pour sauter des éléments :
# Using step in slicing
# Slicing with a step of 2, starting from the beginning to the end
print(a_list[::2]) # Output: ['a', 'c', 'e']
# Slicing with a step of 2, starting from the second element to the end
print(a_list[1::2]) # Output: ['b', 'd']
# Slicing with a step of 2, from the second to the fifth element
print(a_list[1:5:2]) # Output: ['b', 'd']
Exercice
Chiffre d'affaires annuel
Créez un nouveau notebook Jupyter dans le dossier exercices du dossier Lists. Nommez-le Annual_Revenue.ipynb. Après avoir terminé les exercices, n'oubliez pas de sauvegarder le notebook pour conserver votre progression.
Création d'une liste
En tant que responsable financier, créez une liste nommée annual_revenue pour stocker les chiffres d'affaires annuels des cinq dernières années. Assurez-vous que les chiffres sont présentés par ordre chronologique. Par exemple, la liste pourrait représenter les valeurs suivantes pour chaque année : 45, 50, 55, 60, et 65.
Indexation d'une liste
Accédez au chiffre d'affaires de la troisième année dans la liste et affichez-le. Cela affichera le chiffre d'affaires collecté pour cette année spécifique.
Découpage de liste
Extrayez et affichez les chiffres d'affaires des trois premières années pour examiner l'évolution du chiffre d'affaires dans le temps.
Solution
Voir la solution
Création d'une liste
# Creating a list with annual revenue figures for the past five years
annual_revenue = [45, 50, 55, 60, 65]
Voir la solution
Indexation d'une liste
# Accessing the revenue figure for the third year
third_year_revenue = annual_revenue[2] # Indexing starts at 0, so 2 is the third item
# Printing the revenue figure for the third year
print("\nRevenue for the third year:")
print(third_year_revenue)
Voir la solution
Découpage de liste
# Extracting and printing the revenue figures for the first three years
first_three_years_revenue = annual_revenue[:3] # Slicing to get the first three items
print("\nRevenue figures for the first three years:")
print(first_three_years_revenue)
Les listes sont des structures de données mutables, ce qui signifie que nous pouvons modifier, ajouter et supprimer des éléments dans une liste après sa création. La figure ci-dessous montre certaines des méthodes (actions) que vous pouvez appliquer pour modifier le contenu d'une liste. Pour une liste exhaustive des méthodes disponibles, vous pouvez consulter la documentation officielle Python.
Par exemple, vous pourriez créer un rapport où vous suivez différentes métriques commerciales. Vous pourriez stocker l'ensemble initial de métriques dans une liste :
business_metrics = ["Revenue", "Customer Satisfaction", "Market Share", "Employee Turnover"]
Si vous devez mettre à jour "Employee Turnover" en "Employee Retention Rate" dans votre liste, accédez à l'élément "Employee Turnover" par son index et attribuez-lui la nouvelle valeur comme suit :
business_metrics[3] = "Employee Retention Rate"
print(business_metrics)
# Output:
# ['Revenue', 'Customer Satisfaction', 'Market Share', 'Employee Retention Rate']
Exercice
Dans le notebook Jupyter Favorite_Books_List.ipynb, entraînez-vous à mettre à jour des éléments dans les listes en suivant ces étapes :
- Mettez à jour le titre de votre deuxième livre préféré dans la liste
favorite_books. - Mettez à jour les détails (titre, auteur, année de publication) de votre deuxième livre préféré dans la liste
favorite_books_details.
Solution
Voir la solution
# 1. Update the Title of Your Second favorite Book
# Printing the original list
print("Original list of favorite books:")
print(favorite_books)
# Update the title of the second favorite book
favorite_books[1] = "The Lord of the Rings" # Index 1 refers to the second book
# Printing the updated list
print("\nUpdated list of favorite books:")
print(favorite_books)
# Printing the original details
print("Original details of favorite books:")
print(favorite_books_details)
# 2.Update the details of the second favorite book
favorite_books_details[1] = ["The Lord of the Rings", "J.R.R. Tolkien", 1954] # Index 1 refers to the second book
# Printing the updated details
print("\nUpdated details of favorite books:")
print(favorite_books_details)
Ajout d'éléments
Vous pouvez utiliser plusieurs méthodes pour ajouter de nouvelles données à des listes existantes. Reprenons notre liste business_metrics précédente et supposons que nous voulions ajouter une nouvelle métrique commerciale, comme "Net Profit", à la fin de la liste :
# Create an initial list
business_metrics = ["Revenue", "Customer Satisfaction", "Market Share", "Employee Retention Rate"]
# Append a new item to the list
business_metrics.append('Net Profit')
# Print the updated list
print(business_metrics)
# Output:
# ['Revenue', 'Customer Satisfaction', 'Market Share', 'Employee Retention Rate', 'Net Profit']
Le nouvel élément est ajouté à la fin en utilisant la méthode append().
Exercice
Dans le notebook Jupyter favorite_Books_List.ipynb, entraînez-vous à ajouter des éléments aux listes en suivant ces étapes :
- Ajoutez à la fin un nouveau livre préféré à la liste
favorite_books. - Ajoutez à la fin les détails d'un nouveau livre préféré à la liste
favorite_books_details.
Solution
Voir la solution
# Printing the original list
print("Original list of favorite books:")
print(favorite_books)
# 1. Add a new favorite book to the end of the list
favorite_books.append("1984") # Adding George Orwell's classic to the list
# Printing the updated list
print("\nUpdated list of favorite books:")
print(favorite_books)
# Printing the original details
print("Original details of favorite books:")
print(favorite_books_details)
# 2. Add details of the new favorite book to the end of the list
favorite_books_details.append(["1984", "George Orwell", 1949]) # Adding details of '1984'
# Printing the updated details
print("\nUpdated details of favorite books:")
print(favorite_books_details)
Insertion d'éléments
Une autre méthode pour ajouter des éléments à une liste consiste à utiliser la méthode insert(). Celle-ci vous permet d'insérer un nouvel élément à une position spécifique dans la liste.
Par exemple, si nous voulons ajouter "Customer Growth" à la deuxième position dans la liste business_metrics, nous pouvons faire ceci :
# Create an initial list
business_metrics = ["Revenue", "Customer Satisfaction", "Market Share", "Employee Retention Rate"]
# Insert a new item at the second position
business_metrics.insert(1, "Customer Growth")
# Print the updated list
print(business_metrics)
# Output:
# ['Revenue', 'Customer Growth', 'Customer Satisfaction', 'Market Share', 'Employee Retention Rate']
Dans cet exemple, "Customer Growth" est inséré à la deuxième position (index 1), décalant les autres éléments vers la droite.
Exercice
Dans le notebook Jupyter Favorite_Books_List.ipynb, entraînez-vous à ajouter des éléments aux listes en suivant ces étapes :
- Insérez le titre d'un livre que vous avez lu récemment à la deuxième position de la liste
favorite_books. - Insérez les détails d'un livre que vous avez lu récemment à la deuxième position de la liste
favorite_books_details.
Solution
Voir la solution
# Printing the original list
print("Original list of favorite books:")
print(favorite_books)
# New book title
new_book_title = "The Hitchhiker's Guide to the Galaxy"
# 1. Insert the new book title into the second position (index 1)
favorite_books.insert(1, new_book_title)
# Printing the updated list
print("\nUpdated list of favorite books:")
print(favorite_books)
# Printing the original details
print("Original details of favorite books:")
print(favorite_books_details)
# New book details
new_book_details = ["The Hitchhiker's Guide to the Galaxy", "Douglas Adams", 1979]
# 2. Insert the new book details into the second position (index 1)
favorite_books_details.insert(1, new_book_details)
# Printing the updated list
print("\nUpdated Favorite Books Details:")
print(favorite_books_details)
Extension de la liste
Si vous voulez ajouter plusieurs éléments à une liste en même temps, vous pouvez utiliser la méthode extend(). Cette méthode prend un groupe d’éléments (comme une autre liste, un tuple ou une chaîne de caractères) et ajoute chacun de ces éléments à la fin de votre liste.
Par exemple, si nous voulons ajouter plusieurs nouvelles métriques commerciales à notre liste business_metrics existante, nous pouvons faire ceci :
# Create an initial list
business_metrics = ["Revenue", "Customer Satisfaction", "Market Share", "Employee Retention Rate"]
# List of new metrics to add
new_metrics = ["Net Profit", "Customer Acquisition Cost", "Operational Efficiency"]
# Extend the in initial list with the new metrics
business_metrics.extend(new_metrics)
# Print the updated list
print(business_metrics)
# Output:
# ['Revenue', 'Customer Satisfaction', 'Market Share', 'Employee Retention Rate', 'Net Profit', 'Customer Acquisition Cost', 'Operational Efficiency']
Dans cet exemple, la méthode extend() ajoute chaque élément de la liste new_metrics à la fin de la liste business_metrics.
Exercice
Dans le notebook Jupyter favorite_Books_List.ipynb, entraînez-vous à ajouter des éléments dans les listes en suivant ces étapes :
- Utilisez la méthode
extendpour ajouter plusieurs nouveaux titres à la listefavorite_books. - Utilisez la méthode
extendpour ajouter plusieurs nouveaux détails de livres à la listefavorite_books_details.
Solution
Voir la solution
# Printing the original list
print("Original list of favorite books:")
print(favorite_books)
# New titles to add
new_titles = ["The Great Gatsby", "To Kill a Mockingbird", "Pride and Prejudice"]
# Use the extend method to add new titles to the list
favorite_books.extend(new_titles)
# Printing the updated list
print("\nUpdated list of favorite books:")
print(favorite_books)
# Printing the original details
print("Original details of favorite books:")
print(favorite_books_details)
# New details to add
new_book_details = [
["The Great Gatsby", "F. Scott Fitzgerald", 1925],
["To Kill a Mockingbird", "Harper Lee", 1960],
["Pride and Prejudice", "Jane Austen", 1813]
]
# Use the extend method to add new book details to the list
favorite_books_details.extend(new_book_details)
# Printing the updated details
print("\nUpdated details of favorite books:")
print(favorite_books_details)
Exercice
Rouvrez le notebook Jupyter Annual_Revenue.ipynb dans le dossier exercises du dossier Lists. Après avoir terminé les exercices, n'oubliez pas de sauvegarder le notebook pour conserver votre progression.
Modification d'un élément
Mettez à jour le chiffre d'affaires de la deuxième année dans la liste annual_revenue pour refléter une augmentation de 10%.
Ajout d'un élément
Ajoutez le chiffre d'affaires de l'année en cours à la liste annual_revenue. Par exemple, si le chiffre d'affaires de l'année en cours est de 100, incluez cette valeur dans la liste.
Insertion d'un élément
Insérez le chiffre d'affaires de 15 dans la liste annual_revenue entre la deuxième et la troisième année pour tenir compte de ce nouveau trimestre financier.
Extension de la liste
Utilisez la méthode extend pour ajouter les prévisions de chiffre d'affaires à la liste annual_revenue. Par exemple, si les prévisions sont de 50, 75 et 100, vous pouvez étendre la liste avec ces valeurs.
Solution
Voir la solution
Modification d'un élément
# Calculate the new revenue for the second year
annual_revenue = [45, 50, 55, 60, 65]
increase_percentage = 10
index_to_update = 1
revenue_percentage = annual_revenue[index_to_update] * (increase_percentage / 100)
# Update the revenue
annual_revenue[index_to_update] = annual_revenue[index_to_update] + revenue_percentage
# Print the updated list
print("Updated Annual Revenue (after increasing the second year by 10%):")
print(annual_revenue)
Voir la solution
Ajout d'un élément
# Append the revenue figure for the current year
current_year_revenue = 100
annual_revenue.append(current_year_revenue)
# Print the updated list
print("\nUpdated Annual Revenue (after appending the current year's revenue):")
print(annual_revenue)
Voir la solution
Insertion d'un élément
# Insert the new financial quarter revenue
new_quarter_revenue = 15
index_to_insert = 2
annual_revenue.insert(index_to_insert, new_quarter_revenue)
# Print the updated list
print("\nUpdated Annual Revenue (after inserting the new financial quarter revenue):")
print(annual_revenue)
Voir la solution
Extension de la liste
# List of predicted revenue figures
predicted_revenue = [50, 75, 100]
# Extend the annual_revenue list with predicted figures
annual_revenue.extend(predicted_revenue)
# Print the updated list
print("\nUpdated Annual Revenue (after extending with predicted revenue figures):")
print(annual_revenue)
Python propose plusieurs méthodes pour supprimer des éléments d'une liste. Reprenons notre business_metrics précédent et supposons que nous voulions supprimer une métrique commerciale d'une position spécifique, par exemple, la position 1 :
# Create a list
business_metrics = ['Revenue Growth', 'Customer Satisfaction', 'Employee Turnover']
# Removes and returns the second KPI
removed_metric = business_metricss.pop(1)
print(removed_metric) # Output: 'Customer Satisfaction'
print(business_metrics) # Output: ['Revenue Growth', 'Employee Turnover']
pop() nous aide à supprimer l'élément à la position donnée dans la liste et le renvoie. Si aucun index n'est spécifié, pop() supprime et renvoie le dernier élément de la liste.
Exercice
Dans le notebook Jupyter favorite_Books_List.ipynb, entraînez-vous à supprimer des éléments dans les listes en suivant ces étapes avec la méthode pop :
- Supprimez et renvoyez le deuxième livre préféré de la liste
favorite_books. - Supprimez et renvoyez les détails (titre, auteur, année de publication) de votre deuxième livre préféré de la liste
favorite_books_details.
Solution
Voir la solution
# Remove and return the second favorite book
second_favorite_book = favorite_books.pop(1)
# Print the removed book and the updated list
print("Removed Book:", second_favorite_book)
print("Updated Favorite Books List:")
print(favorite_books)
# Remove and return the details of the second favorite book
second_favorite_book_details = favorite_books_details.pop(1)
# Print the removed details and the updated list
print("\\nRemoved Book Details:", second_favorite_book_details)
print("Updated Favorite Books Details List:")
print(favorite_books_details)
Méthode remove()
remove() supprime la première occurrence d'une valeur spécifiée.
business_metrics = ['Revenue Growth', 'Customer Satisfaction', 'Employee Turnover']
business_metrics.remove('Employee Turnover') # Removes 'Employee Turnover' from the list
print(business_metrics) # Output: ['Revenue Growth', 'Customer Satisfaction']
Exercice
Dans le notebook Jupyter Favorite_Books_List.ipynb, entraînez-vous à supprimer des éléments dans les listes en utilisant la méthode remove en suivant ces étapes :
- Supprimez la première occurrence d'un livre spécifique de la liste
favorite_books. - Supprimez la première occurrence des détails (titre, auteur, année de publication) d'un livre spécifique de la liste
favorite_books_details.
Solution
Voir la solution
# Remove the first occurrence of "Dune"
book_to_remove = "Dune"
favorite_books.remove(book_to_remove)
# Print the updated list
print(f"Updated Favorite Books List after removing {book_to_remove}")
print(favorite_books)
# Remove the details of "The Hitchhiker's Guide to the Galaxy"
details_to_remove = ["The Hitchhiker's Guide to the Galaxy", "Douglas Adams", 1979]
favorite_books_details.remove(details_to_remove)
# Print the updated list
print(f"\\nUpdated Favorite Books Details List after removing details of {details_to_remove[0]}:")
print(favorite_books_details)
Méthode clear()
La méthode clear() supprime tous les éléments de la liste, la laissant vide.
business_metrics = ['Revenue Growth', 'Customer Satisfaction', 'Employee Turnover']
business_metrics.clear() # Removes all elements from the list
print(business_metrics) # Output: []
Exercice
Rouvrez le notebook Jupyter Annual_Revenue.ipynb dans le dossier exercises du dossier Lists. Après avoir terminé les exercices, n'oubliez pas de sauvegarder le notebook pour conserver votre progression.
1. Suppression d'un élément
Supprimez le chiffre d'affaires de la troisième année de la liste annual_revenue.
2. Suppression d'un élément à partir de sa valeur
Supprimez le chiffre d’affaires égal à 50 (correspondant au chiffre d’affaires de la deuxième année) de la liste annual_revenue.
Solution
Voir la solution
1. Suppression d'un élément
annual_revenue = [45, 50, 55, 60, 65]
# Remove the revenue figure of the third year
removed_revenue = annual_revenue.pop(3)
# Print the removed figure and the updated list
print("Removed Revenue Figure of the third year:", removed_revenue)
print("Updated Annual Revenue List (after removal):")
print(annual_revenue)
Voir la solution
2. Suppression d'un élément spécifique
# Remove the specific revenue figure of 45
revenue_to_remove = 45
annual_revenue.remove(revenue_to_remove)
# Print the removed figure and the updated list
print("\\nRemoved Revenue Figure:", revenue_to_remove)
print("Updated Annual Revenue List (after removal):")
print(annual_revenue)
Les listes sont souvent créées dans un ordre aléatoire, car vous ne pouvez pas toujours contrôler la façon dont les utilisateurs fournissent leurs données. C’est généralement inévitable, mais parfois, vous devez présenter vos informations dans un ordre spécifique. Parfois, vous voulez conserver l’ordre d’origine, et d’autres fois, vous voulez le modifier.
Python dispose de plusieurs méthodes pour organiser vos listes selon vos besoins. Par exemple, si vous recevez une liste de noms de clients, vous pourriez vouloir les trier par ordre alphabétique. Python propose deux outils principaux pour ce faire :
- La méthode
sort, qui trie une liste directement (in-place), modifiant son ordre initial. - La fonction
sorted, qui crée une nouvelle liste triée, sans affecter l’originale.
Utilisation de sort (modification permanente) :
# Example of sorting customer names using sort()
customer_names = ["Alice", "Charlie", "Bob"]
# Sort the customer names in alphabetical order
customer_names.sort()
print(customer_names)
# Output: ['Alice', 'Bob', 'Charlie']
# The original list is now permanently sorted.
Utilisation de sorted (modification temporaire) :
# Example of sorting customer names using sorted()
customer_names = ["Alice", "Charlie", "Bob"]
# Get a new list that is sorted alphabetically
sorted_customer_names = sorted(customer_names)
print(sorted_customer_names)
# Output: ['Alice', 'Bob', 'Charlie']
# The original list remains unchanged.
print(customer_names)
# Output: ['Alice', 'Charlie', 'Bob']
Note : Pour trier une liste dans l'ordre inverse (par exemple de Z à A), utilisez le paramètre reverse=True avec l'une ou l'autre des méthodes sort ou sorted.
# Example with sort (permanent change)
customer_names = ["Alice", "Charlie", "Bob"]
customer_names.sort(reverse=True)
print(customer_names) # Output: ['Charlie', 'Bob', 'Alice']
# Example with sorted (temporary change)
product_names = ["Laptop", "Phone", "Tablet"]
sorted_product_names = sorted(product_names, reverse=True)
print(sorted_product_names) # Output: ['Tablet', 'Phone', 'Laptop']
print(product_names) # Output: ['Laptop', 'Phone', 'Tablet']
Exercice
Dans le notebook Jupyter Favorite_Books_List.ipynb, entraînez-vous à trier des éléments dans les listes en suivant ces étapes :
- Triez la liste
favorite_bookspar ordre alphabétique en utilisant la méthodesort. - Triez la liste imbriquée
favorite_books_detailsen fonction des titres des livres par ordre alphabétique en utilisant la méthodesort. Supposez que le premier élément de chaque sous-liste est le titre du livre.
Solution
Voir la solution
# 1. Sort the favorite_books list in alphabetical order
favorite_books.sort()
print("Sorted favorite Books List:")
print(favorite_books)
# 2. Sort the favorite_books_details list based on the book titles
favorite_books_details.sort()
print("\nSorted favorite Books Details List (by book titles):")
print(favorite_books_details)
Inversion des éléments
Pour inverser l’ordre d’une liste, vous pouvez utiliser la méthode reverse(). Elle modifie la liste directement (in-place). Si vous souhaitez conserver l’originale intacte, vous pouvez utiliser le découpage avec la syntaxe [::-1], qui crée une nouvelle liste inversée.
Prenons un exemple simple :
# Define a list of project names
projects = ["Project A", "Project B", "Project C"]
# Reverse the order of the list using slicing
reversed_projects = projects[::-1]
# Print the reversed list of projects
print(reversed_projects) # Output: ['Project C', 'Project B', 'Project A']
# Note: The original list remains unchanged
print(projects) # Output: ['Project A', 'Project B', 'Project C']
# To reverse the original list in-place, you can use the reverse() method
projects.reverse()
print(projects) # Output: ['Project C', 'Project B', 'Project A']
Exercice
Dans le notebook Jupyter favorite_Books_List.ipynb, entraînez-vous à inverser des éléments dans les listes en suivant ces étapes :
- Inversez la liste
favorite_booksen utilisant la méthodereverse. - Inversez la liste imbriquée
favorite_books_detailspour que l'ordre des livres soit inversé.
Solution
Voir la solution
# Step 1: Reverse the favorite_books list
favorite_books.reverse()
print("Reversed favorite_books:", favorite_books)
# Step 2: Reverse the favorite_books_details nested list
favorite_books_details.reverse()
print("Reversed favorite_books_details:", favorite_books_details)
Exercice
Rouvrez le notebook Jupyter Annual_Revenue.ipynb dans le dossier exercises du dossier Lists. Après avoir terminé les exercices, n'oubliez pas de sauvegarder le notebook pour conserver votre progression.
Tri des éléments
Triez la liste annual_revenue par ordre croissant pour organiser les données de chiffre d'affaires, puis affichez la liste triée.
Inversion des éléments
Inversez la liste annual_revenue pour visualiser l'historique financier dans l'ordre inverse, puis affichez la liste inversée pour examen.
Solution
Voir la solution
annual_revenue = [45, 50, 55, 60, 65]
# 1. Sorting Elements
annual_revenue.sort()
print("Sorted annual_revenue:", annual_revenue)
# 2. Reversing Elements
annual_revenue.reverse()
print("Reversed annual_revenue:", annual_revenue)
Tout comme avec les chaînes de caractères, vous pouvez utiliser une boucle for pour parcourir les éléments d’une liste dans l’ordre où ils apparaissent. Cela vous permet d**’accéder à chaque élément de la liste un par un**, afin d’effectuer des opérations spécifiques sur chacun d’eux.
Dans l’exemple suivant, nous utilisons une boucle pour afficher chaque nom dans une liste. De plus, nous utilisons la fonction intégrée len(), qui permet de mesurer la longueur d’un texte (ici, le nombre de caractères dans chaque nom). Si ce concept est nouveau, ne vous inquiétez pas : observez simplement son usage.
# Measure customer names:
customer_names = ["Alice", "Bob", "Charlie", "Diana"]
for name in customer_names:
print(name, len(name))
# Output:
# Alice 5
# Bob 3
# Charlie 7
# Diana 5
Par exemple, vous pouvez extraire les noms de plus de 3 lettres qui existent également dans une autre liste :
# Extract names with more than 3 letters:
client_names = ["Eve", "Frank", "Grace", "Heidi"]
existing_names = ["Carmine", "Eve", "Bob", "Grace"]
long_names = []
for name in client_names:
if (len(name) > 3) and (name in existing_names):
long_names.append(name)
print(long_names) # Output: ['Grace']
long_names est une liste vide où nous stockerons les noms qui répondent à nos deux conditions. Il est très courant de créer une liste vide en dehors d'une boucle for pour stocker des données. name in existing_names est une condition qui vérifie l'existence d'un élément dans la liste et renvoie soit True soit False.
Exercice
Dans le notebook Jupyter favorite_Books_List.ipynb, entraînez-vous à parcourir des éléments dans les listes en suivant ces étapes avec des boucles for :
-
Affichez chaque titre de livre de la liste
favorite_books. -
Affichez les détails de chaque livre de la liste imbriquée
favorite_books_details. Vous pouvez utilisez une boucle for, et grâce aux f-strings, vous pouvez formater chaque sortie de manière élégante et lisible. Voici un exemple de sortie attendue :pyhtonTitle: book title, Author: author full name, Year: year Title: another book title, Author: another author full name: Year: another year ...
Solution
Voir la solution
# 1. Print each book title in the favorite_books list
print("Book Titles:")
for book in favorite_books:
print(book)
# 2. Print each book's details in the favorite_books_details nested list
print("Book Details:")
for details in favorite_books_details:
print(f"Title: {details[0]}, Author: {details[1]}, Year: {details[2]}")
Exercice
Manipulation du chiffre d'affaires annuel
Rouvrez le notebook Jupyter Annual_Revenue.ipynb dans le dossier exercises du dossier Lists. Après avoir terminé les exercices, n'oubliez pas de sauvegarder le notebook pour conserver votre progression.
1. Vérification de l'existence d'un élément
Vérifiez si le chiffre d'affaires de 5000 existe dans la liste annual_revenue. Si trouvé, affichez un message indiquant la présence du chiffre ; sinon, affichez un message indiquant que le chiffre n'est pas dans la liste.
Voici un exemple de code que vous pouvez utiliser pour l'exercice :
# Checking whether an element exists in the annual_revenue list
annual_revenue = [4500, 5000, 6200, 7200, 8900]
revenue_to_check = 5000
# Hints:
# Use an if-else statement to check if revenue_to_check is in annual_revenue
# Use the `in` keyword to perform the check
# Print a message indicating whether the figure is found in the list
2. Parcours de listes
Calculez le chiffre d'affaires total à partir de la liste annual_revenue. Affichez le chiffre d'affaires total.
Voici un exemple de code que vous pouvez utiliser pour l'exercice :
# Summing elements in the annual_revenue list using a for loop
annual_revenue = [4500, 5000, 6200, 7200, 8900]
total_revenue = 0
# Hints:
# 1. Iterate through each revenue figure in the annual_revenue list
# 2. At each iteration add the current revenue figure to the total_revenue
# Print the calculated total_revenue
Note : Une instruction assert est utilisée pour vérifier si une condition est vraie. Si elle n'est pas vraie, le programme lèvera une AssertionError. Dans ce contexte, assert total_revenue == sum(annual_revenue) garantit que le chiffre d'affaires total calculé correspond à la somme de la liste.
3. Nombre aléatoire
Complétez le code Python pour créer un programme interactif où l’utilisateur tente de deviner un nombre aléatoire choisi par le programme. Le programme donne des indications après chaque tentative pour aider l’utilisateur à trouver la bonne réponse, tout en comptabilisant le nombre d’essais. Suivez les étapes pour compléter le code et tester vos connaissances.
Vous pouvez créer un nouveau fichier guess_the_number.ipynb dans votre dossier d’exercice.
Suivez ces étapes :
- Complétez le code :
- Remplissez les parties manquantes du code pour rendre le jeu fonctionnel et interactif.
- Testez votre code :
- Après avoir rempli les blancs, exécutez le code pour vous assurer qu'il fonctionne comme prévu.
import random
# 1. Define the range of numbers
min_number = 1
max_number = 10
# 2. Randomly select a number
hidden_number = random.randint(min_number, max_number)
print(f"I have thought of a number between {min_number} and {max_number}. Can you guess what it is?")
# Initialize the attempt counter
attempts = 0
# 3. Provide instructions for the program
print("Enter a number and receive hints to help you find the correct answer.")
# 4. Main loop
while ...: # Replace ... with your code
# Get user input
try:
guess = int(input("Enter your guess: "))
except ValueError:
print("Please enter a valid number.")
continue
# 6. Increment the attempt counter
attempts = ... # Replace ... with your code
# 7. Check if the guess is correct
if guess == ...: # Replace ... with your code
print(f"Congratulations! You guessed the number {hidden_number} in {attempts} attempts.")
break
else:
# 8. Provide a hint if the guess is incorrect
if guess < ...: # Replace ... with hidden_number to compare
print("The number I am thinking of is higher.")
else:
print("The number I am thinking of is lower.")
Note : L'instruction import random en Python inclut le module random dans notre script. Ce module offre des fonctions pour générer des nombres aléatoires et faire des sélections aléatoires. Par exemple, random.choice(green_tech) sélectionne un élément aléatoire de la liste green_tech.
Solution
Voir la solution
1. Vérification de l'existence d'un élément
# Sample data
annual_revenue = [4500, 5000, 6200, 7200, 8900]
revenue_to_check = 5000
# Checking whether an element exists in the annual_revenue list
if revenue_to_check in annual_revenue:
print(f"Yes, {revenue_to_check} gold coin exists in the list!")
else:
print(f"No, {revenue_to_check} gold coin does not exist in the list.")
Voir la solution
2. Parcours de listes
# Sample data
annual_revenue = [4500, 5000, 6200, 7200, 8900]
total_revenue = 0
# Summing elements in the annual_revenue list using a for loop
for revenue in annual_revenue:
total_revenue = total_revenue + revenue # Add current revenue figure to total_revenue
# Assert statement to ensure the calculated total matches the sum of the list
assert total_revenue == sum(annual_revenue), "Total revenue calculation is incorrect!"
# Print the calculated total_revenue
print(f"Total revenue of your kingdom: {total_revenue} gold coins")
Voir la solution
3. Nombre aléatoire
import random
# 1. Define the range of numbers
min_number = 1
max_number = 10
# 2. Randomly select a number
hidden_number = random.randint(min_number, max_number)
print(f"I have thought of a number between {min_number} and {max_number}. Can you guess what it is?")
# Initialize the attempt counter
attempts = 0
# 3. Provide instructions for the program
print("Enter a number and receive hints to help you find the correct answer.")
# 4. Main loop
while True:
# Get user input
try:
guess = int(input("Enter your guess: "))
except ValueError:
print("Please enter a valid number.")
continue
# 6. Increment the attempt counter
attempts += 1
# 7. Check if the guess is correct
if guess == hidden_number:
print(f"Congratulations! You guessed the number {hidden_number} in {attempts} attempts.")
break
else:
# 8. Provide a hint if the guess is incorrect
if guess < hidden_number:
print("The number I am thinking of is higher.")
else:
print("The number I am thinking of is lower.")
Excellent travail ! Dans ce leçon, vous avez exploré les listes Python, qui sont des collections ordonnées d'éléments.
Vous avez appris à créer des listes, à accéder à leurs éléments et à les modifier. Vous vous êtes exercés à utiliser diverses méthodes de liste, notamment .append(), .remove(), .pop(), et .sort(). De plus, vous avez travaillé sur le parcours de listes simples et imbriquées.
Continuez sur cette lancée et poursuivez l'exploration de la puissance et de la flexibilité des listes Python !