Wstawianie łańcucha do listy bez dzielenia na znaki

113

Jestem nowy w Pythonie i nie mogę znaleźć sposobu na wstawienie ciągu do listy bez podzielenia go na pojedyncze znaki:

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

Co powinienem zrobić, aby mieć:

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

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

Dheeraj Vepakomma
źródło

Odpowiedzi:

147

Aby dodać na koniec listy:

list.append('foo')

Aby wstawić na początku:

list.insert(0, 'foo')
Rafe Kettler
źródło
Jestem pewien, że większość ludzi o tym wie, ale wystarczy dodać: zrobienie list2 = list1.append('foo')lub list2 = list1.insert(0, 'foo') spowoduje list2uzyskanie wartości Brak. Obie metody appendi insertsą metodami, które modyfikują listę, na której są używane, zamiast zwracać nową listę.
MoltenMuffins
15

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

>>> l = ['hello','world']
>>> l = ['foo'] + l
>>> l
['foo', 'hello', 'world']
juliomalegria
źródło
1
Właśnie widziałem, możesz go również użyć do dodania na końcu: l += ['foo']
Toni Homedes i Saun
6

najlepiej umieścić nawiasy wokół foo i użyć + =

list+=['foo']
Rik
źródło
5
>>> li = ['aaa', 'bbb']
>>> li.insert(0, 'wow!')
>>> li
['wow!', 'aaa', 'bbb']
prochowiec
źródło
4

Nie używaj listy jako nazwy zmiennej. Jest to wbudowane, które maskujesz.

Aby wstawić, użyj funkcji wstawiania list.

l = ['hello','world']
l.insert(0, 'foo')
print l
['foo', 'hello', 'world']
Spencer Rathbun
źródło
To nie jest do końca poprawne. insert()przyjmuje drugi argument.
Rafe Kettler
@RafeKettler Ups, dołącz to ten bez argumentu miejsca.
Spencer Rathbun
2

Musisz dodać kolejną listę:

list[:0]=['foo']
Jakiś koleś programista
źródło
0
ls=['hello','world']
ls.append('python')
['hello', 'world', 'python']

lub (użyj insertfunkcji, w której możesz użyć pozycji indeksu na liście)

ls.insert(0,'python')
print(ls)
['python', 'hello', 'world']
Abhishek Patil
źródło
-2

Proponuję dodać operator „+” w następujący sposób:

list = lista + ['foo']

Mam nadzieję, że to pomoże!

Antonio Moreno Martín
źródło