2011-11-23 22 views
75

Sono nuovo di Python e non riesco a trovare un modo per inserire una stringa in una lista senza farsi divisa in singoli caratteri:Inserimento di una stringa in una lista senza essere diviso in caratteri

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

Cosa dovrei avere:

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

Ha cercato i documenti e il Web, ma non è stata la mia giornata.

risposta

100

da aggiungere alla fine della lista:

list.append('foo') 

Per inserire all'inizio:

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

Incredibile, grazie mille! –

3

Non utilizzare l'elenco come nome di variabile. È un built-in che stai mascherando.

Per inserire, utilizzare la funzione di inserimento degli elenchi.

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

Questo non è del tutto corretto. 'insert()' prende un secondo argomento. –

+0

@RafeKettler Whoops, append è quello senza argomento place. –

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

È necessario aggiungere un altro elenco:

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

Un'altra opzione sta usando i sovraccarichi + operator:

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

Appena visto, puoi anche usarlo per aggiungere alla fine: 'l + = ['foo']' –

2

migliori parentesi mettere intorno foo, e utilizzare + =

list+=['foo'] 
Problemi correlati