Comment trouver les N premiers éléments d'une liste Python

PythonBeginner
Pratiquer maintenant

Introduction

Les listes Python sont une structure de données fondamentale qui stocke des collections ordonnées d'éléments. Trouver les N premiers éléments d'une liste est une compétence essentielle pour de nombreuses tâches d'analyse et de traitement de données. Que vous ayez besoin d'identifier les étudiants ayant les meilleures notes, les produits les plus populaires ou les plus grandes valeurs d'un ensemble de données, savoir comment extraire efficacement ces éléments est précieux.

Dans ce lab, vous apprendrez différentes méthodes pour trouver les N premiers éléments d'une liste Python. Vous explorerez à la fois les fonctions intégrées et les modules spécialisés, et vous verrez comment appliquer ces techniques à des scénarios réels. À la fin de ce lab, vous aurez une solide compréhension des techniques de manipulation de listes Python qui amélioreront vos capacités de traitement de données.

Création et Compréhension des Listes Python

Dans cette première étape, vous apprendrez les bases des listes Python et comment les créer. Les listes sont des structures de données polyvalentes qui peuvent stocker des éléments de différents types, y compris des nombres, des chaînes de caractères et même d'autres listes.

Créer une Liste

Commençons par créer une simple liste de nombres. Dans le WebIDE, créez un nouveau fichier Python nommé list_basics.py dans le répertoire /home/labex/project :

  1. Cliquez sur le menu "File" (ou l'icône de fichier dans la barre latérale)
  2. Sélectionnez "New File"
  3. Entrez le nom list_basics.py
  4. Ajoutez le code suivant au fichier :
## Creating a list of numbers
numbers = [15, 7, 27, 9, 42, 8, 31, 17]

## Print the original list
print("Original list:", numbers)

## Print the length of the list
print("List length:", len(numbers))

## Access elements by index
print("First element:", numbers[0])
print("Last element:", numbers[-1])

## Slicing a list
print("First three elements:", numbers[:3])
print("Last three elements:", numbers[-3:])

Maintenant, exécutez le code pour voir la sortie :

  1. Ouvrez un terminal dans le WebIDE (s'il n'est pas déjà ouvert)
  2. Exécutez le script avec la commande :
python3 list_basics.py

Vous devriez voir une sortie similaire à celle-ci :

Original list: [15, 7, 27, 9, 42, 8, 31, 17]
List length: 8
First element: 15
Last element: 17
First three elements: [15, 7, 27]
Last three elements: [8, 31, 17]

Modification des Listes

Maintenant, modifions notre liste. Ajoutez le code suivant à list_basics.py :

## Adding elements to a list
numbers.append(50)
print("After append:", numbers)

## Inserting an element at a specific position
numbers.insert(2, 99)
print("After insert:", numbers)

## Removing elements
numbers.remove(9)  ## Remove by value
print("After remove:", numbers)

popped_value = numbers.pop()  ## Remove and return the last element
print("Popped value:", popped_value)
print("After pop:", numbers)

Exécutez à nouveau le script pour voir comment la liste change :

python3 list_basics.py

La sortie devrait maintenant inclure :

After append: [15, 7, 27, 9, 42, 8, 31, 17, 50]
After insert: [15, 7, 99, 27, 9, 42, 8, 31, 17, 50]
After remove: [15, 7, 99, 27, 42, 8, 31, 17, 50]
Popped value: 50
After pop: [15, 7, 99, 27, 42, 8, 31, 17]

Cela démontre comment les listes Python sont mutables (peuvent être modifiées) après leur création, ce qui est une caractéristique importante qui les rend flexibles pour la manipulation des données.

Tri des Listes en Python

Avant de trouver les N premiers éléments, il est important de comprendre comment trier les listes en Python. Le tri organise les éléments dans un ordre spécifique, généralement croissant (du plus petit au plus grand) ou décroissant (du plus grand au plus petit).

Tri de Base avec sorted()

Créez un nouveau fichier nommé sorting_lists.py dans le répertoire du projet et ajoutez le code suivant :

## Creating a list of numbers
scores = [85, 92, 78, 91, 88, 76, 94, 87]

## Sort in ascending order (default)
sorted_scores = sorted(scores)
print("Original scores:", scores)
print("Sorted scores (ascending):", sorted_scores)

## Sort in descending order
desc_scores = sorted(scores, reverse=True)
print("Sorted scores (descending):", desc_scores)

## Original list remains unchanged
print("Original scores after sorting:", scores)

Exécutez le script pour voir les listes triées :

python3 sorting_lists.py

Vous devriez voir une sortie similaire à celle-ci :

Original scores: [85, 92, 78, 91, 88, 76, 94, 87]
Sorted scores (ascending): [76, 78, 85, 87, 88, 91, 92, 94]
Sorted scores (descending): [94, 92, 91, 88, 87, 85, 78, 76]
Original scores after sorting: [85, 92, 78, 91, 88, 76, 94, 87]

Notez que la fonction sorted() renvoie une nouvelle liste triée tout en laissant la liste d'origine inchangée.

Tri avec la Méthode sort()

Maintenant, explorons la méthode sort(), qui modifie la liste en place. Ajoutez le code suivant à sorting_lists.py :

## Creating another list
prices = [12.99, 8.50, 15.75, 9.99, 11.25]
print("\nOriginal prices:", prices)

## Sort the list in place (ascending)
prices.sort()
print("After sort() (ascending):", prices)

## Sort the list in place (descending)
prices.sort(reverse=True)
print("After sort(reverse=True) (descending):", prices)

Exécutez à nouveau le script :

python3 sorting_lists.py

La sortie supplémentaire devrait être :

Original prices: [12.99, 8.5, 15.75, 9.99, 11.25]
After sort() (ascending): [8.5, 9.99, 11.25, 12.99, 15.75]
After sort(reverse=True) (descending): [15.75, 12.99, 11.25, 9.99, 8.5]

Tri avec des Clés Personnalisées

Vous pouvez également trier les listes en fonction de critères spécifiques en utilisant une fonction clé (key function). Ajoutez le code suivant à sorting_lists.py :

## List of strings
names = ["Alice", "bob", "Charlie", "david", "Eva"]
print("\nOriginal names:", names)

## Sort alphabetically (case-sensitive)
print("Sorted alphabetically (case-sensitive):", sorted(names))

## Sort alphabetically (case-insensitive)
print("Sorted alphabetically (case-insensitive):", sorted(names, key=str.lower))

## List of tuples (name, age)
people = [("Alice", 25), ("Bob", 19), ("Charlie", 32), ("David", 22)]
print("\nOriginal people:", people)

## Sort by age (second element of each tuple)
print("Sorted by age:", sorted(people, key=lambda person: person[1]))

## Sort by name length
print("Sorted by name length:", sorted(people, key=lambda person: len(person[0])))

Exécutez le script une fois de plus :

python3 sorting_lists.py

La sortie supplémentaire démontre comment trier avec des critères personnalisés :

Original names: ['Alice', 'bob', 'Charlie', 'david', 'Eva']
Sorted alphabetically (case-sensitive): ['Alice', 'Charlie', 'Eva', 'bob', 'david']
Sorted alphabetically (case-insensitive): ['Alice', 'bob', 'Charlie', 'david', 'Eva']

Original people: [('Alice', 25), ('Bob', 19), ('Charlie', 32), ('David', 22)]
Sorted by age: [('Bob', 19), ('David', 22), ('Alice', 25), ('Charlie', 32)]
Sorted by name length: [('Bob', 19), ('Alice', 25), ('David', 22), ('Charlie', 32)]

Comprendre ces techniques de tri est essentiel pour trouver les N premiers éléments d'une liste, ce que nous explorerons à l'étape suivante.

Trouver les N Premiers Éléments en Utilisant sorted()

Maintenant que vous comprenez les listes Python et le tri, concentrons-nous sur la recherche des N premiers éléments d'une liste. L'approche la plus simple consiste à utiliser la fonction sorted() avec le paramètre reverse=True puis à découper (slice) le résultat pour obtenir les N premiers éléments.

Créez un nouveau fichier nommé top_n_sorted.py dans le répertoire du projet et ajoutez le code suivant :

## Finding top N elements using sorted()

## Sample data: Student scores
student_scores = [85, 92, 78, 91, 88, 76, 94, 87, 89, 93]
print("Student scores:", student_scores)

## Find the top 3 scores
top_3_scores = sorted(student_scores, reverse=True)[:3]
print("Top 3 scores:", top_3_scores)

## Find the top 5 scores
top_5_scores = sorted(student_scores, reverse=True)[:5]
print("Top 5 scores:", top_5_scores)

Exécutez le script pour voir les N premiers éléments :

python3 top_n_sorted.py

Vous devriez voir une sortie similaire à celle-ci :

Student scores: [85, 92, 78, 91, 88, 76, 94, 87, 89, 93]
Top 3 scores: [94, 93, 92]
Top 5 scores: [94, 93, 92, 91, 89]

Trouver les N Premiers Éléments avec des Données Complexes

Étendons notre exemple pour travailler avec des structures de données plus complexes. Ajoutez le code suivant à top_n_sorted.py :

## Sample data: Product sales data (product name, units sold)
product_sales = [
    ("Product A", 1250),
    ("Product B", 870),
    ("Product C", 1100),
    ("Product D", 750),
    ("Product E", 940),
    ("Product F", 1300),
    ("Product G", 820),
    ("Product H", 980)
]
print("\nProduct sales:", product_sales)

## Find the top 3 best-selling products
## We sort based on the units sold (second element of each tuple)
top_3_products = sorted(product_sales, key=lambda x: x[1], reverse=True)[:3]
print("Top 3 best-selling products:")
for product, sales in top_3_products:
    print(f"  {product}: {sales} units")

## Sample data: Student records (name, scores in different subjects)
student_records = [
    {"name": "Alice", "scores": [92, 88, 95, 85]},
    {"name": "Bob", "scores": [78, 82, 79, 75]},
    {"name": "Charlie", "scores": [85, 90, 88, 92]},
    {"name": "Diana", "scores": [95, 97, 93, 90]},
    {"name": "Eva", "scores": [88, 84, 89, 86]}
]
print("\nStudent records:", student_records)

## Find the top 2 students based on average score
def average_score(student):
    return sum(student["scores"]) / len(student["scores"])

top_2_students = sorted(student_records, key=average_score, reverse=True)[:2]
print("Top 2 students by average score:")
for student in top_2_students:
    avg = average_score(student)
    print(f"  {student['name']}: {avg:.2f} average")

Exécutez à nouveau le script :

python3 top_n_sorted.py

La sortie supplémentaire démontre comment trouver les N premiers éléments dans des structures de données plus complexes :

Product sales: [('Product A', 1250), ('Product B', 870), ('Product C', 1100), ('Product D', 750), ('Product E', 940), ('Product F', 1300), ('Product G', 820), ('Product H', 980)]
Top 3 best-selling products:
  Product F: 1300 units
  Product A: 1250 units
  Product C: 1100 units

Student records: [{'name': 'Alice', 'scores': [92, 88, 95, 85]}, {'name': 'Bob', 'scores': [78, 82, 79, 75]}, {'name': 'Charlie', 'scores': [85, 90, 88, 92]}, {'name': 'Diana', 'scores': [95, 97, 93, 90]}, {'name': 'Eva', 'scores': [88, 84, 89, 86]}]
Top 2 students by average score:
  Diana: 93.75 average
  Alice: 90.00 average

La fonction sorted() avec le découpage (slicing) est une approche polyvalente pour trouver les N premiers éléments d'une liste. Cependant, pour les grands ensembles de données, il existe des méthodes plus efficaces, que nous explorerons à l'étape suivante.

Trouver les N Premiers Éléments en Utilisant heapq

Bien que la fonction sorted() fonctionne bien dans la plupart des cas, le module heapq de Python fournit des méthodes plus efficaces pour trouver les N premiers éléments, en particulier pour les grands ensembles de données. Le module heapq implémente l'algorithme de la file d'attente à tas (heap queue algorithm), également connu sous le nom d'algorithme de la file d'attente à priorité (priority queue algorithm).

Créez un nouveau fichier nommé top_n_heapq.py dans le répertoire du projet et ajoutez le code suivant :

## Finding top N elements using heapq
import heapq

## Sample data: Student scores
student_scores = [85, 92, 78, 91, 88, 76, 94, 87, 89, 93]
print("Student scores:", student_scores)

## Find the top 3 scores using heapq.nlargest()
top_3_scores = heapq.nlargest(3, student_scores)
print("Top 3 scores (using heapq.nlargest()):", top_3_scores)

## Find the bottom 3 scores using heapq.nsmallest()
bottom_3_scores = heapq.nsmallest(3, student_scores)
print("Bottom 3 scores (using heapq.nsmallest()):", bottom_3_scores)

Exécutez le script pour voir comment heapq fonctionne :

python3 top_n_heapq.py

Vous devriez voir une sortie similaire à celle-ci :

Student scores: [85, 92, 78, 91, 88, 76, 94, 87, 89, 93]
Top 3 scores (using heapq.nlargest()): [94, 93, 92]
Bottom 3 scores (using heapq.nsmallest()): [76, 78, 85]

Utilisation de heapq avec des Données Complexes

Le module heapq peut également fonctionner avec des structures de données complexes en spécifiant une fonction clé (key function). Ajoutez le code suivant à top_n_heapq.py :

## Sample data: Product sales data (product name, units sold)
product_sales = [
    ("Product A", 1250),
    ("Product B", 870),
    ("Product C", 1100),
    ("Product D", 750),
    ("Product E", 940),
    ("Product F", 1300),
    ("Product G", 820),
    ("Product H", 980)
]
print("\nProduct sales:", product_sales)

## Find the top 3 best-selling products using heapq.nlargest()
top_3_products = heapq.nlargest(3, product_sales, key=lambda x: x[1])
print("Top 3 best-selling products:")
for product, sales in top_3_products:
    print(f"  {product}: {sales} units")

## Sample data: Student records (name, scores in different subjects)
student_records = [
    {"name": "Alice", "scores": [92, 88, 95, 85]},
    {"name": "Bob", "scores": [78, 82, 79, 75]},
    {"name": "Charlie", "scores": [85, 90, 88, 92]},
    {"name": "Diana", "scores": [95, 97, 93, 90]},
    {"name": "Eva", "scores": [88, 84, 89, 86]}
]
print("\nStudent records:", student_records)

## Find the top 2 students based on average score using heapq.nlargest()
def average_score(student):
    return sum(student["scores"]) / len(student["scores"])

top_2_students = heapq.nlargest(2, student_records, key=average_score)
print("Top 2 students by average score:")
for student in top_2_students:
    avg = average_score(student)
    print(f"  {student['name']}: {avg:.2f} average")

Exécutez à nouveau le script :

python3 top_n_heapq.py

La sortie supplémentaire démontre l'utilisation de heapq avec des structures de données complexes :

Product sales: [('Product A', 1250), ('Product B', 870), ('Product C', 1100), ('Product D', 750), ('Product E', 940), ('Product F', 1300), ('Product G', 820), ('Product H', 980)]
Top 3 best-selling products:
  Product F: 1300 units
  Product A: 1250 units
  Product C: 1100 units

Student records: [{'name': 'Alice', 'scores': [92, 88, 95, 85]}, {'name': 'Bob', 'scores': [78, 82, 79, 75]}, {'name': 'Charlie', 'scores': [85, 90, 88, 92]}, {'name': 'Diana', 'scores': [95, 97, 93, 90]}, {'name': 'Eva', 'scores': [88, 84, 89, 86]}]
Top 2 students by average score:
  Diana: 93.75 average
  Alice: 90.00 average

Comparaison de Performance : sorted() vs heapq

Comparons les performances de sorted() et heapq pour trouver les N premiers éléments dans une grande liste. Ajoutez le code suivant à top_n_heapq.py :

import time
import random

## Generate a large list of random numbers
print("\nComparing performance with a large list:")
large_list = [random.randint(1, 1000000) for _ in range(100000)]
print(f"List size: {len(large_list)} elements")

## Time the sorted() approach
start_time = time.time()
top_10_sorted = sorted(large_list, reverse=True)[:10]
sorted_time = time.time() - start_time
print(f"Time taken with sorted(): {sorted_time:.6f} seconds")

## Time the heapq approach
start_time = time.time()
top_10_heapq = heapq.nlargest(10, large_list)
heapq_time = time.time() - start_time
print(f"Time taken with heapq.nlargest(): {heapq_time:.6f} seconds")
print(f"Performance gain: {sorted_time / heapq_time:.2f}x faster")

## Verify both methods give the same result
print("Both methods give the same result:", sorted(top_10_sorted) == sorted(top_10_heapq))

Exécutez le script une dernière fois :

python3 top_n_heapq.py

La sortie supplémentaire démontre les avantages de performance de l'utilisation de heapq pour les grands ensembles de données :

Comparing performance with a large list:
List size: 100000 elements
Time taken with sorted(): 0.034625 seconds
Time taken with heapq.nlargest(): 0.008976 seconds
Performance gain: 3.86x faster
Both methods give the same result: True

Pour trouver un petit nombre de N premiers éléments dans une grande liste, heapq.nlargest() est plus efficace que de trier la liste entière puis de la découper. En effet, heapq.nlargest() maintient un tas (heap) de taille N, tandis que sorted() trie la liste entière.

Applications Réelles

Maintenant que vous avez appris différentes techniques pour trouver les N premiers éléments d'une liste Python, explorons quelques applications réelles. Dans cette étape, vous allez créer un script plus complet qui applique ces concepts à des scénarios pratiques.

Créez un nouveau fichier nommé practical_applications.py dans le répertoire du projet et ajoutez le code suivant :

## Real-world applications of finding top N elements
import heapq
from datetime import datetime

print("PRACTICAL APPLICATIONS OF FINDING TOP N ELEMENTS IN PYTHON LISTS\n")

## Application 1: E-commerce - Analyzing Product Sales
print("APPLICATION 1: E-COMMERCE - ANALYZING PRODUCT SALES")
print("==================================================")

## Sample product sales data (product_id, product_name, units_sold, price)
product_sales = [
    (101, "Smartphone X", 1250, 899.99),
    (102, "Wireless Earbuds", 2100, 129.99),
    (103, "Laptop Pro", 890, 1299.99),
    (104, "Smart Watch", 1450, 249.99),
    (105, "Tablet Mini", 1050, 399.99),
    (106, "Bluetooth Speaker", 1750, 79.99),
    (107, "Gaming Console", 780, 499.99),
    (108, "Digital Camera", 550, 349.99),
    (109, "Power Bank", 1900, 49.99),
    (110, "Fitness Tracker", 1350, 129.99)
]

## Find top 3 products by units sold
top_sold_products = heapq.nlargest(3, product_sales, key=lambda x: x[2])
print("\nTop 3 Best-Selling Products (by units sold):")
for product in top_sold_products:
    print(f"  {product[1]}: {product[2]} units sold at ${product[3]}")

## Find top 3 products by revenue (units_sold * price)
top_revenue_products = heapq.nlargest(3, product_sales, key=lambda x: x[2] * x[3])
print("\nTop 3 Products by Revenue:")
for product in top_revenue_products:
    revenue = product[2] * product[3]
    print(f"  {product[1]}: ${revenue:,.2f} revenue ({product[2]} units at ${product[3]})")

## Application 2: Data Analysis - Temperature Monitoring
print("\n\nAPPLICATION 2: DATA ANALYSIS - TEMPERATURE MONITORING")
print("====================================================")

## Sample temperature data (date, city, temperature)
temperature_data = [
    ("2023-06-15", "New York", 32.5),
    ("2023-06-15", "Los Angeles", 28.3),
    ("2023-06-15", "Chicago", 30.1),
    ("2023-06-15", "Houston", 35.7),
    ("2023-06-15", "Phoenix", 40.2),
    ("2023-06-15", "Miami", 33.8),
    ("2023-06-15", "Denver", 29.6),
    ("2023-06-15", "Seattle", 22.4),
    ("2023-06-15", "Boston", 27.9),
    ("2023-06-15", "Atlanta", 31.5)
]

## Find cities with highest temperatures
hottest_cities = heapq.nlargest(3, temperature_data, key=lambda x: x[2])
print("\nTop 3 Hottest Cities:")
for city_data in hottest_cities:
    print(f"  {city_data[1]}: {city_data[2]}°C")

## Find cities with lowest temperatures
coldest_cities = heapq.nsmallest(3, temperature_data, key=lambda x: x[2])
print("\nTop 3 Coldest Cities:")
for city_data in coldest_cities:
    print(f"  {city_data[1]}: {city_data[2]}°C")

## Application 3: Social Media - User Engagement
print("\n\nAPPLICATION 3: SOCIAL MEDIA - USER ENGAGEMENT")
print("=============================================")

## Sample social media post data (post_id, title, likes, comments, shares, timestamp)
posts = [
    (1001, "Breaking News: Major Announcement", 3500, 420, 1200, datetime(2023, 6, 10, 12, 30)),
    (1002, "Product Review: Latest Gadget", 2200, 380, 900, datetime(2023, 6, 11, 15, 45)),
    (1003, "Tutorial: Python Programming", 1800, 650, 750, datetime(2023, 6, 12, 9, 15)),
    (1004, "Travel Tips for Summer Vacation", 2700, 320, 1100, datetime(2023, 6, 13, 18, 20)),
    (1005, "Recipe: Delicious Desserts", 3100, 450, 1500, datetime(2023, 6, 14, 11, 10)),
    (1006, "Interview with Celebrity", 4200, 580, 2200, datetime(2023, 6, 15, 14, 25)),
    (1007, "Health and Fitness Guide", 1500, 280, 600, datetime(2023, 6, 16, 8, 40)),
    (1008, "Movie Review: Latest Blockbuster", 2900, 410, 950, datetime(2023, 6, 17, 20, 30)),
    (1009, "Tech News: Industry Updates", 2000, 300, 800, datetime(2023, 6, 18, 13, 15)),
    (1010, "DIY Home Improvement Projects", 1700, 520, 700, datetime(2023, 6, 19, 16, 50))
]

## Define a function to calculate engagement score (weighted sum of likes, comments, shares)
def engagement_score(post):
    return post[2] + (post[3] * 2) + (post[4] * 3)  ## likes + (comments * 2) + (shares * 3)

## Find top 3 posts by engagement score
top_engaging_posts = heapq.nlargest(3, posts, key=engagement_score)
print("\nTop 3 Most Engaging Posts:")
for post in top_engaging_posts:
    score = engagement_score(post)
    print(f"  Post ID: {post[0]}")
    print(f"  Title: {post[1]}")
    print(f"  Engagement Score: {score}")
    print(f"  (Likes: {post[2]}, Comments: {post[3]}, Shares: {post[4]})")
    print(f"  Posted on: {post[5].strftime('%Y-%m-%d %H:%M')}")
    print()

## Find top 3 posts by likes
top_liked_posts = heapq.nlargest(3, posts, key=lambda x: x[2])
print("Top 3 Most Liked Posts:")
for post in top_liked_posts:
    print(f"  {post[1]}: {post[2]} likes")

## Find top 3 posts by comments
top_commented_posts = heapq.nlargest(3, posts, key=lambda x: x[3])
print("\nTop 3 Most Commented Posts:")
for post in top_commented_posts:
    print(f"  {post[1]}: {post[3]} comments")

Exécutez le script pour voir ces applications pratiques :

python3 practical_applications.py

Vous devriez voir une sortie détaillée montrant comment trouver les N premiers éléments peut être appliqué dans des scénarios réels :

PRACTICAL APPLICATIONS OF FINDING TOP N ELEMENTS IN PYTHON LISTS

APPLICATION 1: E-COMMERCE - ANALYZING PRODUCT SALES
==================================================

Top 3 Best-Selling Products (by units sold):
  Wireless Earbuds: 2100 units sold at $129.99
  Power Bank: 1900 units sold at $49.99
  Bluetooth Speaker: 1750 units sold at $79.99

Top 3 Products by Revenue:
  Smartphone X: $1,124,987.50 revenue (1250 units at $899.99)
  Laptop Pro: $1,156,991.10 revenue (890 units at $1299.99)
  Wireless Earbuds: $272,979.00 revenue (2100 units at $129.99)


APPLICATION 2: DATA ANALYSIS - TEMPERATURE MONITORING
====================================================

Top 3 Hottest Cities:
  Phoenix: 40.2°C
  Houston: 35.7°C
  Miami: 33.8°C

Top 3 Coldest Cities:
  Seattle: 22.4°C
  Boston: 27.9°C
  Los Angeles: 28.3°C


APPLICATION 3: SOCIAL MEDIA - USER ENGAGEMENT
=============================================

Top 3 Most Engaging Posts:
  Post ID: 1006
  Title: Interview with Celebrity
  Engagement Score: 11560
  (Likes: 4200, Comments: 580, Shares: 2200)
  Posted on: 2023-06-15 14:25

  Post ID: 1005
  Title: Recipe: Delicious Desserts
  Engagement Score: 8450
  (Likes: 3100, Comments: 450, Shares: 1500)
  Posted on: 2023-06-14 11:10

  Post ID: 1001
  Title: Breaking News: Major Announcement
  Engagement Score: 8060
  (Likes: 3500, Comments: 420, Shares: 1200)
  Posted on: 2023-06-10 12:30

Top 3 Most Liked Posts:
  Interview with Celebrity: 4200 likes
  Breaking News: Major Announcement: 3500 likes
  Recipe: Delicious Desserts: 3100 likes

Top 3 Most Commented Posts:
  Tutorial: Python Programming: 650 comments
  Interview with Celebrity: 580 comments
  DIY Home Improvement Projects: 520 comments

Ces exemples démontrent comment les techniques que vous avez apprises peuvent être appliquées à des scénarios réels tels que l'analyse des ventes en e-commerce, l'analyse des données météorologiques et les mesures d'engagement sur les réseaux sociaux. Dans chaque cas, la capacité à trouver efficacement les N premiers éléments est cruciale pour extraire des informations précieuses des données.

Résumé

Félicitations pour avoir terminé ce lab sur la recherche des N premiers éléments dans les listes Python. Vous avez appris plusieurs techniques et concepts importants :

  1. Opérations de base sur les listes (Basic List Operations) : Vous avez exploré comment créer, accéder et modifier des listes Python, qui sont des structures de données fondamentales en Python.

  2. Techniques de tri (Sorting Techniques) : Vous avez appris à trier les listes en utilisant à la fois la fonction sorted() et la méthode sort(), y compris comment trier par ordre croissant et décroissant, et comment utiliser des clés de tri personnalisées.

  3. Trouver les N premiers éléments avec sorted() : Vous avez découvert comment utiliser la fonction sorted() avec le slicing pour trouver les N premiers éléments d'une liste.

  4. Trouver les N premiers éléments avec heapq : Vous avez exploré le module heapq, qui fournit des méthodes plus efficaces (nlargest() et nsmallest()) pour trouver les N premiers et derniers éléments, en particulier pour les grands ensembles de données.

  5. Applications réelles (Real-World Applications) : Vous avez appliqué ces techniques à des scénarios pratiques dans le e-commerce, l'analyse de données et les médias sociaux, démontrant leur polyvalence et leur utilité.

Ces compétences seront précieuses dans de nombreuses tâches de programmation, de l'analyse et du traitement des données à la création d'applications sophistiquées qui doivent prioriser ou classer des éléments. La capacité à trouver efficacement les N premiers éléments est un outil puissant dans votre boîte à outils de programmation Python.

Au fur et à mesure que vous poursuivrez votre parcours Python, vous trouverez ces techniques utiles dans de nombreux contextes, et vous pourrez vous appuyer sur elles pour résoudre des problèmes plus complexes.