一尘不染

Python-.join()方法到底做什么?

python

我对Python来说还很陌生,并且完全不.join()理解所读内容是连接字符串的首选方法。

我试过了:

strid = repr(595)
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
    .tostring().join(strid)

并得到类似:

5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5

为什么会这样工作?难道不595应该自动追加吗?


阅读 603

收藏
2020-02-20

共1个答案

一尘不染

仔细查看你的输出:

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
2020-02-20