我对Python很陌生,完全搞不懂.join(),我读过它是连接字符串的首选方法。

我试着:

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

结果是这样的:

5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5

为什么会这样?595不是应该被自动追加吗?


当前回答

Join()用于连接所有列表元素。如果只是连接两个字符串,“+”会更有意义:

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

其他回答

“”。Join可用于将列表中的字符串复制到变量中

>>> myList = list("Hello World")
>>> myString = "".join(myList)
>>> print(myList)
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
>>> print(myString)
Hello World

在提供这个作为输入时,

li = ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
s = ";".join(li)
print(s)

Python将其作为输出返回:

'server=mpilgrim;uid=sa;database=master;pwd=secret'

这里有一个很好的解释,说明为什么使用+来连接大量字符串的代价很高

加运算符是连接两个Python的完美解决方案 字符串。但如果你继续添加两个以上的字符串(n > 25),你 也许你该想点别的。 ”。Join ([a, b, c])技巧是一种性能优化。

为了进一步扩展其他人所说的内容,如果你想使用join来简单地连接你的两个字符串,你会这样做:

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

要附加一个字符串,只需将它与+号连接。

E.g.

>>> a = "Hello, "
>>> b = "world"
>>> str = a + b
>>> print str
Hello, world

Join使用分隔符将字符串连接在一起。分隔符就是你 放置在连接之前。如。

>>> "-".join([a,b])
'Hello, -world'

Join接受一个字符串列表作为参数。