2011-11-23 8 views
75

Jestem nowy w Pythonie i nie może znaleźć sposób, aby wstawić ciąg do listy bez Robi się podzielić na poszczególne postaci:Wstawianie ciąg do listy bez uzyskiwania podzielić na znaki

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

Co powinienem zrobić:

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

Przeszukałem dokumenty i Internet, ale to nie był mój dzień.

Odpowiedz

100

Aby dodać na końcu listy:

list.append('foo') 

Aby wstawić na początku:

list.insert(0, 'foo') 
+0

Niesamowite, dziękuję bardzo! –

3

Nie należy używać listy jako nazwy zmiennej. Jest wbudowany w to, co maskujesz.

Aby wstawić, użyj funkcji wstawiania list.

l = ['hello','world'] 
l.insert(0, 'foo') 
print l 
['foo', 'hello', 'world'] 
+0

To nie jest do końca poprawne. 'insert()' przyjmuje drugi argument. –

+0

@RafeKettler Whoops, append jest jedynym bez argumentu miejsca. –

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

Trzeba dodać kolejną listę:

list[:0]=['foo'] 
9

Inną opcją jest użycie przeciążonej + operator:

>>> l = ['hello','world'] 
>>> l = ['foo'] + l 
>>> l 
['foo', 'hello', 'world'] 
+0

Po prostu widać, że możesz go również użyć do dodania na końcu: 'l + = ['foo']' –

2

najlepsze uchwyty na około foo i użyć + =

list+=['foo'] 
Powiązane problemy