Как интерпретировать результат, когда строка списка передается в функцию join () в Python? - PullRequest
3 голосов
/ 21 июня 2019

Я играл с функцией соединения, когда по ошибке передал список, преобразованный в строку, в функции соединения. Результат очень странный, как показано в коде ниже.

Как лучше всего интерпретировать результат?

test =  ['2', '1', '3']
s = 'x'
print(s.join(str(test)))

выход

[x'x2x'x,x x'x1x'x,x x'x3x'x]

Ответы [ 2 ]

2 голосов
/ 21 июня 2019

В основном, когда вы набираете str(test), python создает строку "['2', '1', '3']". Это строка с 15 символами (' не смущает, это тоже считается символами.

Теперь, когда вы делаете s.join(str(test)), вы можете думать об этом как о x между каждым символом строки.

Первоначально последовательность символов была:

[ --> ' --> 2 --> ' --> , --> ' --> 1 --> ' --> , -->' --> 3 --> ' --> ]

Затем 'x'.join(str(test)) поместил x везде, где есть стрелка (-->) выше.

Типичным использованием join будет передача списка вместо строки в качестве аргумента. Например, если вы написали:

s.join(test)

Будет возвращено:

'2x1x3'
1 голос
/ 21 июня 2019

Функция .join объединяет элементы списка в строку с определенным вами разделителем.Если вы передадите ей строку, хотя она разделит ее на список, а затем объединит с разделителем.Итак, вы передали ему свой список строк, на который он разделился:

'[', "'", '1', "'", ',', ' ', "'", '2', "'", ',', ' ', "'", '3', "'", ']'

, а затем он соединился с 'x'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...