Eu sou muito novo em Python e estou completamente confuso com .join()
que li como o método preferido para concatenar seqüências de caracteres.
Eu tentei:
strid = repr(595)
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring().join(strid)
e tem algo como:
5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
Por que funciona assim? O 595
just não deve ser automaticamente anexado?
Respostas:
Observe atentamente sua saída:
Eu destaquei os "5", "9", "5" da sua string original. O
join()
método Python é um método de cadeia de caracteres e leva uma lista de itens a serem associados à cadeia de caracteres. Um exemplo mais simples pode ajudar a explicar:O "," é inserido entre cada elemento da lista fornecida. No seu caso, sua "lista" é a representação de cadeia "595", que é tratada como a lista ["5", "9", "5"].
Parece que você está procurando
+
:fonte
join
a propriedade útil de ser o inversosplit
( docs.python.org/library/stdtypes.html#str.split )','.join(['a', 'b', 'c', ''])
dá "a, b, c,"string.join
comos.path.join
o que de fato concatena caminhosjoin
toma uma coisa iterável como argumento. Geralmente é uma lista. O problema no seu caso é que uma string é iterável, fornecendo cada caracter por vez. Seu código é dividido em:que age da mesma maneira:
e assim produz sua string:
Strings como iterables é um dos problemas iniciais mais confusos com o Python.
fonte
Para acrescentar uma sequência, concatene-a com o
+
sinal.Por exemplo
join
conecta seqüências de caracteres com um separador. O separador é o que você coloca logo antes dojoin
. Por exemploJoin leva uma lista de strings como parâmetro.
fonte
join () é para concatenar todos os elementos da lista. Para concatenar apenas duas strings "+", faria mais sentido:
fonte
Para expandir um pouco mais o que os outros estão dizendo, se você quiser usar join para simplesmente concatenar suas duas strings, faça o seguinte:
fonte
Há uma boa explicação de por que é caro usar
+
para concatenar um grande número de strings aquifonte
Ao fornecer isso como entrada,
Python retorna isso como saída:
fonte
Se for uma entrada, usando o método JOIN, podemos adicionar a distância entre as palavras e também converter a lista na string.
Esta é a saída Python
fonte
"" .join pode ser usado para copiar a string em uma lista para uma variável
fonte