解释Python .join()

问题:

我对Python很新,并且完全被.join()困惑,我已经阅读是连接字符串的首选方法。
我试试:

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

并得到如下的东西:

5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5

为什么这样工作?不应该自动附加595吗?

回答:

仔细看看你的输出:

5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
^                 ^                 ^

我突出显示了你原来的字符串的“5”,“9”,“5”。 Python join()方法是一个字符串方法,并且需要list的东西来加入该字符串。一个更简单的例子可能有助于解释:

>>> ",".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

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Explain Python .join()

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 73 = 83