Inserindo uma string em uma lista sem se dividir em caracteres

113

Sou novo no Python e não consigo encontrar uma maneira de inserir uma string em uma lista sem que ela seja dividida em caracteres individuais:

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

O que devo fazer para ter:

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

Pesquisei nos documentos e na web, mas não foi o meu dia.

Dheeraj Vepakomma
fonte

Respostas:

147

Para adicionar ao final da lista:

list.append('foo')

Para inserir no início:

list.insert(0, 'foo')
Rafe Kettler
fonte
Tenho certeza que a maioria das pessoas sabe disso, mas apenas para acrescentar: fazer list2 = list1.append('foo')ou list2 = list1.insert(0, 'foo') resultará em list2ter o valor Nenhum. Ambos appende insertsão métodos que alteram a lista na qual são usados, em vez de retornar uma nova lista.
MoltenMuffins
15

Outra opção é usar o sobrecarregado + operator:

>>> l = ['hello','world']
>>> l = ['foo'] + l
>>> l
['foo', 'hello', 'world']
juliomalegria
fonte
1
Acabei de ver que você também pode usá-lo para adicionar no final: l += ['foo']
Toni Homedes i Saun
6

melhor colocar colchetes em torno de foo e usar + =

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

Não use lista como nome de variável. É algo que você está mascarando.

Para inserir, use a função de inserção de listas.

l = ['hello','world']
l.insert(0, 'foo')
print l
['foo', 'hello', 'world']
Spencer Rathbun
fonte
Isso não está totalmente correto. insert()leva um segundo argumento.
Rafe Kettler
@RafeKettler Opa, append é aquele sem um argumento de lugar.
Spencer Rathbun
2

Você tem que adicionar outra lista:

list[:0]=['foo']
Algum cara programador
fonte
0
ls=['hello','world']
ls.append('python')
['hello', 'world', 'python']

ou (use a insertfunção onde você pode usar a posição do índice na lista)

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

Sugiro adicionar o operador '+' da seguinte forma:

lista = lista + ['foo']

Espero que ajude!

Antonio Moreno Martín
fonte