Equivalente Python para implodir do PHP?


Respostas:


185

Use o método de junção de strings .

print ' '.join(['word1', 'word2', 'word3'])

Você pode juntar qualquer iterável (não apenas o listusado aqui) e, claro, você pode usar qualquer string (não apenas' ' ) como delimitador.

Se você quiser uma ordem aleatória como disse em sua pergunta, use o shuffle .


join () funciona muito bem se você tiver um array de strings, mas se qualquer membro do array for int em vez de um string, você obterá um TypeError, o implode do php não faz isso, mesmo em modo estrito = / <?php declare(strict_types=1);var_dump(implode("glue",["startString",(int)123,"endString"]));dá a você string(31) "startStringglue123glueendString"mas em python, fazer "glue".join(["startString",123,"endString"]);dá a vocêTypeError: sequence item 1: expected str instance, int found
hanshenrik 01 de

14

Ok, acabei de encontrar uma função que faz o que eu queria fazer;

Eu li em um arquivo com palavras em um formato como: Jack/Jill/my/kill/name/bucket

Em seguida, divido usando o split()método e uma vez que tinha a palavra em uma lista, concatenou as palavras com este método:

concatenatedString = ' - '.join(myWordList)
# ie: delimeter.join(list)

3
Eu não entendo porque você quer se juntar. Primeiro você tem uma linha, você a divide em caracteres e depois a junta novamente. Por que você não substitui os personagens em primeiro lugar? (Você perdeu a parte 'aleatória' em sua própria resposta, não é mais relevante?)
RvdK
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.