Existe uma maneira mais simples de concatenar itens de string em uma lista em uma única string? Posso usar a str.join()
função?
Por exemplo, esta é a entrada ['this','is','a','sentence']
e esta é a saída desejadathis-is-a-sentence
sentence = ['this','is','a','sentence']
sent_str = ""
for i in sentence:
sent_str += str(i) + "-"
sent_str = sent_str[:-1]
print sent_str
'-'.join(sentence)
Respostas:
Use
join
:fonte
sentence.join(" ")
funcionar também, já que a operação reversa élist.split(" ")
. Alguma idéia se isso será adicionado aos métodos de lista do Python?list.join
seria inadequado para uma lista arbitrária. Por outro lado, o argumento destr.join
pode ser qualquer sequência "iterável" de seqüências de caracteres, não apenas uma lista. A única coisa que faria sentido é uma função internajoin(list, sep)
; existe um nostring
módulo (basicamente obsoleto) se você realmente quiser.' '.join(['this', 'is', 'a', 'sentence'])
Uma maneira mais genérica de converter listas python em strings seria:
fonte
map(str, my_lst)
seria suficiente sem enumerar a lista =)int
mas pode ser qualquer tipo que possa ser representado como uma sequência.' '.join(map(lambda x: ' $'+ str(x), my_lst))
, retornaria'$1 $2 $3 $4 $5 $6 $7 $8 $9 $10'
É muito útil para iniciantes saber por que join é um método de string .
É muito estranho no começo, mas muito útil depois disso.
O resultado da junção é sempre uma string, mas o objeto a ser unido pode ser de vários tipos (geradores, lista, tuplas, etc.).
.join
é mais rápido porque aloca memória apenas uma vez. Melhor que a concatenação clássica (ver explicação detalhada ).Depois de aprender, é muito confortável e você pode fazer truques como esse para adicionar parênteses.
fonte
Embora a resposta de @Burhan Khalid seja boa, acho que é mais compreensível assim:
O segundo argumento para join () é opcional e o padrão é "".
EDIT: Esta função foi removida no Python 3
fonte
Podemos especificar como temos que juntar a string. Em vez de '-', podemos usar ''
fonte
Também podemos usar a função de redução do Python :
fonte
join
?fonte