Python中相当于PHP的implode函数的是什么?

133

在Python中是否有类似于PHP中的implode函数?我已经读取并分割了一组分隔的单词,现在想要以随机顺序排序它们,并用空格将单词打印出来。

implode — 使用字符串连接数组元素

http://php.net/manual/en/function.implode.php

2个回答

223
使用字符串join方法
print(' '.join(['word1', 'word2', 'word3']))

您可以连接任何可迭代对象(不仅限于此处使用的list),当然您可以使用任何字符串(不仅限于' ')作为分隔符。

如果你想要像你在问题中提到的随机顺序,使用shuffle


在评论中有这样一个问题:为什么Python会抛出错误,如果你这样做:"glue".join(["startString", 123, "endString"])join 操作的是字符串的可迭代对象。在 Python 中没有隐式类型转换。

但是这当然有解决办法。只需自己进行转换即可。

"glue".join(map(str, ["startString",123,"endString"]))


1
join()函数在处理字符串数组时非常好用,但如果数组中的任何成员是整数而不是字符串,则会出现TypeError错误。PHP的implode()函数即使在严格模式下也不会出现这种情况。例如:<?php declare(strict_types=1);var_dump(implode("glue",["startString",(int)123,"endString"])); 将输出 string(31) "startStringglue123glueendString" 但是在Python中,执行 "glue".join(["startString",123,"endString"]); 将会出现 TypeError: sequence item 1: expected str instance, int found 的错误提示。 - hanshenrik

15

好的,我刚刚找到了一个可以做我想做的事情的函数;

我读入的文件是以以下格式存储单词的: Jack/Jill/my/kill/name/bucket

然后我使用split()方法将其拆分为列表,一旦我把单词转换成列表后,我用这种方法来连接这些单词:

concatenatedString = ' - '.join(myWordList)
# ie: delimeter.join(list)

4
我不理解你为什么想加入。首先,你有一条线,然后将其分割成字符,再将其合并。为什么不直接替换第一次出现的字符呢?(你的回答中缺少“随机”部分,现在已不相关了吗?) - RvdK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接