当一串列表被传递到 Python 中的 join() 函数时,如何解释结果



当我错误地在连接函数中传递一个转换为字符串的列表时,我正在玩连接函数。结果非常奇怪,如下面的代码所示。

解释结果的最佳方式是什么?

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

输出

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

基本上当你输入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'

.join 函数将列表的元素组合成一个字符串,其中包含您定义的一些分隔符。如果你给它传递一个字符串,但它会把它分成一个列表,然后用你的分隔符连接它。所以你把它你的字符串列表传递给它,它拆分成:

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

然后它与"x"连接

最新更新