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.

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')

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']

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']

5
>>> li = ['aaa', 'bbb']
>>> li.insert(0, 'wow!')
>>> li
['wow!', 'aaa', 'bbb']

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']

Das ist nicht ganz richtig. insert()nimmt ein zweites Argument.
Rafe Kettler

@RafeKettler Whoops, append ist derjenige ohne Ortsargument.
Spencer Rathbun


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']

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.