Что точно делает .join (), метод делает?

Так как Вы используете Ubuntu, и не Kubuntu, я предполагаю, что Вы используете GNOME. Вы могли бы интересоваться Интеграция Подрывной деятельности Наутилуса описаны на той ссылке.

205
задан martineau 19 November 2017 в 17:20
поделиться

5 ответов

Внимательно посмотрите на свой вывод:

5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
^                 ^                 ^

Я выделил «5», «9», «5» исходной строки. Метод Python join () является строковым и принимает список вещей, которые нужно соединить со строкой. Более простой пример может помочь объяснить:

>>> ",".join(["a", "b", "c"])
'a,b,c'

«,» вставляется между каждым элементом данного списка. В вашем случае ваш «список» представляет собой строковое представление «595», которое рассматривается как список [«5», «9», «5»].

Похоже, что вы ищете + вместо:

print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring() + strid
299
ответ дан 23 November 2019 в 04:51
поделиться

Чтобы добавить строку, просто объедините ее знаком + .

Например,

>>> a = "Hello, "
>>> b = "world"
>>> str = a + b
>>> print str
Hello, world

join соединяет строки вместе с разделителем. Разделитель - это то, что ты поместите прямо перед соединением . Например,

>>> "-".join([a,b])
'Hello, -world'

Join принимает список строк в качестве параметра.

58
ответ дан 23 November 2019 в 04:51
поделиться

join принимает в качестве аргумента повторяющуюся вещь. Обычно это список. Проблема в вашем случае заключается в том, что строка сама является итерируемой, выдавая каждый символ по очереди. Ваш код разбивается на следующее:

"wlfgALGbXOahekxSs".join("595")

, который действует так же, как этот:

"wlfgALGbXOahekxSs".join(["5", "9", "5"])

, и поэтому производит вашу строку:

"5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5"

Строки как итерируемые объекты - одна из самых запутанных начальных проблем с Python.

90
ответ дан 23 November 2019 в 04:51
поделиться

Чтобы подробнее рассказать о том, что говорят другие, если вы хотите использовать соединение для простого объединения двух строк, вы должны сделать это:

strid = repr(595)
print ''.join([array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
    .tostring(), strid])
4
ответ дан 23 November 2019 в 04:51
поделиться

join () предназначен для объединения всех элементов списка. Для конкатенации только двух строк "+" имеет больше смысла:

strid = repr(595)
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
    .tostring() + strid
7
ответ дан 23 November 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: