Equivalente in Python per l'implosione di PHP?


Risposte:


185

Usa il metodo di unione delle stringhe .

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

Puoi unirti a qualsiasi iterabile (non solo quello listusato qui) e ovviamente puoi usare qualsiasi stringa (non solo ' ') come delimitatore.

Se vuoi un ordine casuale come hai detto nella tua domanda usa shuffle .


join () funziona alla grande se hai un array di stringhe, ma se un membro dell'array è int invece di una stringa, otterrai un TypeError, l'implosione di php non lo fa, anche in modalità strict = / <?php declare(strict_types=1);var_dump(implode("glue",["startString",(int)123,"endString"]));ti dà string(31) "startStringglue123glueendString"ma in Python fare "glue".join(["startString",123,"endString"]);ti dàTypeError: sequence item 1: expected str instance, int found
hanshenrik

14

Ok, ho appena trovato una funzione che fa quello che volevo fare;

Ho letto in un file con parole in un formato come: Jack/Jill/my/kill/name/bucket

L'ho quindi diviso usando il split()metodo e una volta che ho avuto la parola in un elenco, ho concatenato le parole con questo metodo:

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

3
Non capisco perché vuoi unirti. Prima hai una linea, la dividi in caratteri e poi la unisci di nuovo. Perché non sostituisci i personaggi in primo luogo? (Ti manca la parte 'casuale' nella tua risposta, non è più rilevante?)
RvdK
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.