Python >> Tutoriel Python >  >> Python Tag >> Array

Création d'un tableau de chaînes - Quelle est la manière la plus pythonique ?

Formulation du problème

  • Étant donné un nombre entier n .
  • Étant donné une valeur de chaîne initiale s .

Comment créer un tableau de n copies de s en Python ?

# Input:
n = 5
s = ''

# Output:
['', '', '', '', '']

Méthode 1 :Multiplication de liste

Python n'a pas de type de tableau intégré. L'équivalent d'un tableau en Java est une liste en Python. Donc, nous modifions légèrement la formulation du problème pour créer une liste.

La façon la plus pythonique de créer un tableau de chaînes en Python de chaîne s et taille n est d'utiliser l'opérateur astérisque de multiplication de liste dans l'expression [s] * n .

# Method 1: List Multiplication
a = [s] * n
print(a)
# ['', '', '', '', '']

Contexte  :Une introduction à l'opérateur Asterisk en Python

Méthode 2 :boucle For

L'approche canonique consiste à créer une liste vide et à ajouter de manière itérative la même valeur de chaîne à la liste existante dans une boucle for. Vous pouvez utiliser le standard list.append(element) de Python fonction.

# Method 2: For Loop
a = []
for i in range(n):
    a.append(s)
print(a)
# ['', '', '', '', '']

Contexte :Boucles Python

Méthode 3 :Compréhension de la liste

La compréhension de liste est un moyen concis de créer une nouvelle liste en une seule ligne. La compréhension de liste est une manière compacte de créer des listes. La formule simple est [expression + context] .

  • Expression :Que faire de chaque élément de la liste ?
  • Contexte :Quels éléments sélectionner ? Le contexte consiste en un nombre arbitraire d'instructions for et if.

Voici un exemple :

# Method 3: List Comprehension
a = [s for _ in range(n)]
print(a)
# ['', '', '', '', '']

Contexte  :Une introduction à la compréhension des listes

Méthode 4 :Création d'un tableau NumPy

NumPy est la bibliothèque standard de Python pour les calculs numériques. La chose la plus proche d'un tableau Java en Python est un tableau NumPy. Vous pouvez créer un tableau NumPy à partir de n'importe quelle liste Python en passant la liste dans le np.array() constructeur.

# Method 4: NumPy
import numpy as np
a = np.array([s for _ in range(n)])
print(a)
# ['' '' '' '' '']

Contexte :NumPy - Tout ce que vous devez savoir pour commencer

Discussion

Le type de données chaîne en Python est immuable. Cela signifie que vous ne pouvez pas modifier une chaîne après l'avoir créée. Ceci est différent de Java où vous pouvez modifier une chaîne après l'avoir créée. Par conséquent, il n'est souvent pas logique d'initialiser un tableau avec des chaînes par défaut car ces chaînes ne peuvent pas être modifiées ultérieurement. La seule chose que vous puissiez faire est d'écraser les chaînes de la liste. Mais si vous faisiez cela, ajouter la valeur fictive n'a pas beaucoup de sens en premier lieu.

Compréhension de la liste de vidéos d'arrière-plan