Я довольно новичок в Python и полностью сбит с толку тем, .join()
что прочитал, что это предпочтительный метод для объединения строк.
Я попытался:
strid = repr(595)
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring().join(strid)
и получил что-то вроде:
5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
Почему это работает так? Разве 595
просто не должно быть автоматически добавлено?
Ответы:
Посмотрите внимательно на ваш вывод:
Я выделил «5», «9», «5» вашей исходной строки. Метод Python
join()
является строковым методом и принимает список вещей, которые нужно объединить со строкой. Более простой пример может помочь объяснить:"," Вставляется между каждым элементом данного списка. В вашем случае ваш «список» - это строковое представление «595», которое рассматривается как список [«5», «9», «5»].
Похоже, что вы ищете
+
вместо этого:источник
join
полезное свойство быть обратнымsplit
( docs.python.org/library/stdtypes.html#str.split )','.join(['a', 'b', 'c', ''])
дает "a, b, c"string.join
с тем,os.path.join
что действительно объединяет путиjoin
принимает итеративную вещь в качестве аргумента. Обычно это список. Проблема в вашем случае состоит в том, что строка сама по себе является итеративной, выдавая каждый символ по очереди. Ваш код сводится к следующему:который действует так же, как это:
и так выдает вашу строку:
Строки как итерируемые - одна из самых запутанных проблем в начале работы с Python.
источник
Чтобы добавить строку, просто объедините ее со
+
знаком.Например
join
соединяет строки вместе с разделителем. Разделитель - это то, что вы размещаете прямо передjoin
. НапримерJoin принимает в качестве параметра список строк.
источник
join () предназначен для объединения всех элементов списка. Для объединения только двух строк "+" имело бы больше смысла:
источник
Чтобы еще больше рассказать о том, что говорят другие, если вы хотите использовать объединение, чтобы просто объединить две строки, вы должны сделать это:
источник
Существует хорошее объяснение того , почему это дорого использовать
+
для конкатенации большого количества строк здесьисточник
Предоставляя это в качестве входных данных,
Python возвращает это как вывод:
источник
Если это вход, используя метод JOIN, мы можем добавить расстояние между словами, а также преобразовать список в строку.
Это выход Python
источник
"" .join может быть использован для копирования строки в списке в переменную
источник