Insérer une chaîne dans une liste sans se diviser en caractères

113

Je suis nouveau sur Python et je ne peux pas trouver un moyen d'insérer une chaîne dans une liste sans qu'elle soit divisée en caractères individuels:

>>> list=['hello','world']
>>> list
['hello', 'world']
>>> list[:0]='foo'
>>> list
['f', 'o', 'o', 'hello', 'world']

Que dois-je faire pour avoir:

['foo', 'hello', 'world']

J'ai cherché dans les documents et sur le Web, mais ce n'est pas ma journée.

Dheeraj Vepakomma
la source

Réponses:

147

Pour ajouter à la fin de la liste:

list.append('foo')

A insérer au début:

list.insert(0, 'foo')
Rafe Kettler
la source
Je suis sûr que la plupart des gens le savent, mais juste pour ajouter: faire list2 = list1.append('foo')ou list2 = list1.insert(0, 'foo') entraînera la list2valeur None. Les deux appendet insertsont des méthodes qui modifient la liste sur laquelle elles sont utilisées plutôt que de renvoyer une nouvelle liste.
MoltenMuffins
15

Une autre option utilise le surchargé + operator:

>>> l = ['hello','world']
>>> l = ['foo'] + l
>>> l
['foo', 'hello', 'world']
juliomalegria
la source
1
Vous venez de voir que vous pouvez également l'utiliser pour ajouter à la fin: l += ['foo']
Toni Homedes i Saun
6

mieux vaut mettre des crochets autour de foo et utiliser + =

list+=['foo']
Rik
la source
5
>>> li = ['aaa', 'bbb']
>>> li.insert(0, 'wow!')
>>> li
['wow!', 'aaa', 'bbb']
Mac
la source
4

N'utilisez pas la liste comme nom de variable. C'est un élément intégré que vous masquez.

Pour insérer, utilisez la fonction d'insertion de listes.

l = ['hello','world']
l.insert(0, 'foo')
print l
['foo', 'hello', 'world']
Spencer Rathbun
la source
Ce n'est pas tout à fait correct. insert()prend un deuxième argument.
Rafe Kettler
@RafeKettler Oups, append est celui sans argument de lieu.
Spencer Rathbun
2

Vous devez ajouter une autre liste:

list[:0]=['foo']
Un mec programmeur
la source
0
ls=['hello','world']
ls.append('python')
['hello', 'world', 'python']

ou (utilisez la insertfonction où vous pouvez utiliser la position d'index dans la liste)

ls.insert(0,'python')
print(ls)
['python', 'hello', 'world']
Abhishek Patil
la source
-2

Je suggère d'ajouter l'opérateur '+' comme suit:

liste = liste + ['toto']

J'espère que ça aide!

Antonio Moreno Martín
la source