'str' object has no attribute 'append'

Python Erreur courante

Explication

L'erreur `AttributeError: 'str' object has no attribute 'append'` signifie que vous appelez une méthode de **liste** (`append`, `extend`, `sort`...) sur une **chaîne de caractères**. Les chaînes sont immuables et n'ont pas ces méthodes : la variable n'est pas du type que vous croyez. ```python noms = "alice" # c'est une str, pas une liste noms.append("bob") # AttributeError: 'str' object has no attribute 'append' ```

Causes courantes

- **La variable est une `str`** alors que vous la pensiez liste. - **Réaffectation** : une liste transformée en chaîne par `", ".join(...)` ou `str(...)`. - **Retour de fonction** d'un type inattendu. - **Donnée lue d'un fichier** : une ligne est une chaîne, pas une liste.

1. Utilisez une vraie liste

noms = ["alice"]
noms.append("bob")   # ✅ ["alice", "bob"]

2. Pour agrandir une chaîne, concaténez

Les chaînes n'ont pas d'append ; on les assemble avec += (ou, mieux, on accumule dans une liste puis join) :

texte = "alice"
texte += ", bob"            # ✅
parts = ["alice", "bob"]
texte = ", ".join(parts)    # ✅ plus efficace pour beaucoup d'éléments

3. Vérifiez le type en cas de doute

print(type(noms))   # <class 'str'> révèle l'erreur

Comment prevenir cette erreur

- **Annotez les types** (`noms: list[str]`) et activez `mypy`. - **Nommez clairement** vos variables (`liste_noms` vs `nom`). - Souvenez-vous : `append`, `extend`, `sort` sont des méthodes de **liste** ; `split`, `strip`, `upper` sont des méthodes de **chaîne**.

Besoin d'aide sur votre projet ?

Besoin d'aide sur un probleme technique ? Decrivez-le pour des recommandations.

Nous contacter

Questions frequentes

Comment ajouter un caractère à une chaîne ?
Les chaînes étant immuables, on crée une nouvelle chaîne : `texte += "x"`. Pour beaucoup d'ajouts, accumulez dans une liste puis assemblez avec `"".join(liste)` — c'est nettement plus rapide.
La même erreur existe-t-elle dans l'autre sens ?
Oui : `'list' object has no attribute 'split'` survient quand vous appelez une méthode de chaîne sur une liste. Le principe est identique — vérifiez le type réel de la variable.

Erreurs similaires

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.