当我错误地在连接函数中传递一个转换为字符串的列表时,我正在玩连接函数。结果非常奇怪,如下面的代码所示。
解释结果的最佳方式是什么?
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"连接