CommencerCommencez gratuitement

Accéder à des sous-tableaux

Accédons à des éléments dans des tableaux NumPy ! Votre tâche consiste à convertir un tableau bidimensionnel carré square de taille size en une liste en suivant un motif en spirale :

Traversing the matrix in spiral way

Plutôt que d’accéder simplement à certaines tranches, vous allez définir une solution plus générale à l’aide d’une boucle for (la solution doit fonctionner pour tous les tableaux carrés bidimensionnels de taille impaire).

Le module numpy est déjà importé sous le nom np.

Vous aurez besoin de la fonction reversed() qui inverse un itérable.

Cet exercice fait partie du cours

<cours>S’exercer aux questions d’entretien de code en Python</cours>
Voir le cours

Instructions de l’exercice

  • Convertissez chaque partie indiquée par une flèche rouge en liste.
  • Convertissez chaque partie indiquée par une flèche verte en liste.
  • Convertissez chaque partie indiquée par une flèche bleue en liste.
  • Convertissez chaque partie indiquée par une flèche magenta en liste.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

spiral = []

for i in range(0, size):
    # Convert each part marked by any red arrow to a list
    spiral += list(square[i, ____:____])
    # Convert each part marked by any green arrow to a list
    spiral += list(square[____:____, size-i-1])
    # Convert each part marked by any blue arrow to a list
    spiral += list(reversed(square[size-i-1, ____:____]))
    # Convert each part marked by any magenta arrow to a list
    spiral += list(reversed(square[____:size-i-1, ____]))
        
print(spiral)
Modifier et exécuter le code