Einfügen einer Zeichenfolge in eine Liste, ohne in Zeichen aufgeteilt zu werden

113

Ich bin neu in Python und kann keine Möglichkeit finden, eine Zeichenfolge in eine Liste einzufügen, ohne dass sie in einzelne Zeichen aufgeteilt wird:

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

Was soll ich tun, um zu haben:

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

Durchsuchte die Dokumente und das Web, aber es war nicht mein Tag.

Dheeraj Vepakomma
quelle

Antworten:

147

So fügen Sie am Ende der Liste Folgendes hinzu:

list.append('foo')

So fügen Sie am Anfang ein:

list.insert(0, 'foo')
Rafe Kettler
quelle
Ich bin sicher, dass die meisten Leute das wissen, aber nur um hinzuzufügen: Tun list2 = list1.append('foo')oder list2 = list1.insert(0, 'foo') wird zu list2einem Wert von Keine führen. Beide appendund insertsind Methoden, die die Liste mutieren, für die sie verwendet werden, anstatt eine neue Liste zurückzugeben.
MoltenMuffins
15

Eine andere Option ist die Verwendung der überladenen + operator:

>>> l = ['hello','world']
>>> l = ['foo'] + l
>>> l
['foo', 'hello', 'world']
juliomalegria
quelle
1
Gerade gesehen können Sie es auch verwenden, um am Ende anzuhängen: l += ['foo']
Toni Homedes i Saun
6

Setzen Sie am besten Klammern um foo und verwenden Sie + =

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

Verwenden Sie list nicht als Variablennamen. Es ist ein eingebautes, das Sie maskieren.

Verwenden Sie zum Einfügen die Einfügefunktion von Listen.

l = ['hello','world']
l.insert(0, 'foo')
print l
['foo', 'hello', 'world']
Spencer Rathbun
quelle
Das ist nicht ganz richtig. insert()nimmt ein zweites Argument.
Rafe Kettler
@RafeKettler Whoops, append ist derjenige ohne Ortsargument.
Spencer Rathbun
2

Sie müssen eine weitere Liste hinzufügen:

list[:0]=['foo']
Ein Programmierer
quelle
0
ls=['hello','world']
ls.append('python')
['hello', 'world', 'python']

oder (verwenden Sie die insertFunktion, mit der Sie die Indexposition in der Liste verwenden können)

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

Ich schlage vor, den Operator '+' wie folgt hinzuzufügen:

list = list + ['foo']

Ich hoffe es hilft!

Antonio Moreno Martín
quelle