当前位置:  开发笔记 > 编程语言 > 正文

.join()方法究竟做了什么?

如何解决《.join()方法究竟做了什么?》经验,为你挑选了4个好方法。

我是Python的新手,我完全感到困惑,.join()因为我已经阅读过它是连接字符串的首选方法.

我试过了:

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

有类似的东西:

5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5

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



1> Greg Hewgill..:

仔细看看你的输出:

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


一个原因是它给`join`提供了与`split`相反的有用属性(http://docs.python.org/library/stdtypes.html#str.split)
OP可能会混淆`string.join`和`os.path.join`,这确实会连接路径
如果您想要另一个分隔符,请在列表末尾添加一个空字符串.`','.join(['a','b','c',''])`给出"a,b,c"

2> Ned Batcheld..:

join将可迭代的东西作为参数.通常它是一个列表.在你的情况下,问题是字符串本身是可迭代的,依次给出每个字符.你的代码分解为:

"wlfgALGbXOahekxSs".join("595")

其行为与此相同:

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

所以产生你的字符串:

"5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5"

作为迭代的字符串是Python最令人困惑的开始问题之一.


upvote指出可能是混乱的关键:字符串是可迭代的,因此它们就像字符列表一样.

3> Dan Loewenhe..:

要附加字符串,只需将其与+符号连接即可.

例如

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

join用分隔符连接字符串.分隔符是您放置之前的位置join.例如

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

Join将字符串列表作为参数.


我们的社区应该提倡这种直接和简洁的答案.@担

4> Pēteris Caun..:

join()用于连接所有列表元素.对于连接两个字符串"+"会更有意义:

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

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有