Odpowiednik Pythona dla implode PHP?


Odpowiedzi:


185

Użyj metody łączenia ciągów .

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

Możesz dołączyć do dowolnej iterowalnej (nie tylko listużytej tutaj) i oczywiście możesz użyć dowolnego ciągu (nie tylko ' ') jako separatora.

Jeśli chcesz uzyskać losową kolejność, jak powiedziałeś w swoim pytaniu, użyj odtwarzania losowego .


join () działa świetnie, jeśli masz tablicę ciągów, ale jeśli którykolwiek element tablicy jest int zamiast ciągiem, otrzymasz TypeError, implode php tego nie robi, nawet w trybie ścisłym = / <?php declare(strict_types=1);var_dump(implode("glue",["startString",(int)123,"endString"]));daje ci string(31) "startStringglue123glueendString"ale w Pythonie "glue".join(["startString",123,"endString"]);daje ci toTypeError: sequence item 1: expected str instance, int found
hanshenrik

14

OK, właśnie znalazłem funkcję, która robi to, co chciałem;

Przeczytałem w pliku ze słowami w formacie: Jack/Jill/my/kill/name/bucket

Następnie podzieliłem to za pomocą split()metody i kiedy już miałem słowo na liście, połączyłem słowa z tą metodą:

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

3
Nie rozumiem, dlaczego chcesz się przyłączyć. Najpierw masz linię, dzielisz ją na znaki, a następnie łączysz ponownie. Dlaczego nie zastąpisz znaków w pierwszej kolejności? (Brakuje Ci
``
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.