Jestem całkiem nowy w Pythonie i jestem całkowicie zdezorientowany, .join()
ponieważ przeczytałem, że jest preferowaną metodą łączenia łańcuchów.
Próbowałem:
strid = repr(595)
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring().join(strid)
i dostałem coś takiego:
5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
Dlaczego tak to działa? Czy nie powinno 595
się automatycznie dodawać?
Odpowiedzi:
Przyjrzyj się uważnie swojej produkcji:
Podkreśliłem „5”, „9”, „5” oryginalnego ciągu. Metoda Python
join()
jest metodą łańcuchową i wymaga listy rzeczy do połączenia z łańcuchem. Prostszy przykład może pomóc wyjaśnić:Znak „,” jest wstawiany między każdy element podanej listy. W twoim przypadku twoja „lista” to ciąg znaków „595”, który jest traktowany jak lista [„5”, „9”, „5”].
Wygląda na to, że
+
zamiast tego szukasz :źródło
join
to przydatną właściwość bycia odwrotnościąsplit
( docs.python.org/library/stdtypes.html#str.split )','.join(['a', 'b', 'c', ''])
daje „a, b, c”string.join
z tym,os.path.join
co rzeczywiście łączy ścieżkijoin
przyjmuje iterowalną rzecz jako argument. Zwykle jest to lista. Problem w twoim przypadku polega na tym, że sam łańcuch jest iterowalny, wydzielając kolejno każdy znak. Twój kod dzieli się na następujące:który działa tak samo jak to:
i tak tworzy ciąg:
Ciągi jako iterowalne to jeden z najbardziej zagmatwanych początkowych problemów z Pythonem.
źródło
Aby dodać ciąg, po prostu połącz go ze
+
znakiem.Na przykład
join
łączy ciągi znaków z separatorem. Separator jest tym, co umieszczasz tuż przedjoin
. Na przykładJoin przyjmuje listę ciągów jako parametr.
źródło
Join () służy do łączenia wszystkich elementów listy. Aby połączyć tylko dwa ciągi „+” miałoby większy sens:
źródło
Aby rozszerzyć nieco więcej na to, co mówią inni, jeśli chcesz użyć funkcji złączenia, aby po prostu połączyć swoje dwa ciągi, wykonaj następujące czynności:
źródło
Jest to dobre wytłumaczenie, dlaczego to jest kosztowne w użyciu
+
na łączenie wielu ciągów tutajźródło
Po podaniu tego jako danych wejściowych,
Python zwraca to jako wynik:
źródło
Jeśli jest to dane wejściowe, za pomocą metody JOIN możemy dodać odległość między słowami, a także przekonwertować listę na ciąg.
To jest wyjście Pythona
źródło
„” .join może być użyte do skopiowania ciągu z listy do zmiennej
źródło