.join()方法到底是做什么的?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

我对Python非常陌生,对.join()我读过的是连接字符串的首选方法。

我试过:

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

得到了这样的信息:

5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5

为什么这样工作?

提问于
用户回答回答于

仔细观察您的输出:

5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
^                 ^                 ^

我强调了你原来的字符串的“5”,“9”,“5”。Pythonjoin()方法是字符串方法,并接受列单要加入字符串的东西。一个简单的例子可能有助于解释:

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

“,”插入到给定列表的每个元素之间。在您的示例中,“list”是字符串表示“595”,它被视为列表。“5”、“9”、“5”

看来你在找+相反:

print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring() + strid
用户回答回答于

join把可迭代的东西当作参数。通常是一张单子。在情况下,问题是字符串本身是可迭代的,依次给出每个字符。代码分解如下:

"wlfgALGbXOahekxSs".join("595")

它的作用与此相同:

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

这样就产生了你的字符串:

"5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5"

字符串作为可迭代的字符串是Python中最令人困惑的起始问题之一。

扫码关注云+社区