str().join()有没有像 str().split()那样能够给定一个分隔符参数,用这个分隔符连起来的方法呢?

2015-05-22 20:28:58 +08:00
 evolighting
3366 次点击
所在节点    Python
15 条回复
Septembers
2015-05-22 20:30:58 +08:00
evolighting
2015-05-22 20:38:36 +08:00
@Septembers
但是,join是不支持两个参数的呀?我也确实是在2.7版本的python上试过了
结果:
”TypeError: join() takes exactly one argument (2 given)“
Septembers
2015-05-22 20:42:18 +08:00
好吧看错了

>>> '-'.join(str(_) for _ in range(10))
'0-1-2-3-4-5-6-7-8-9'

string.join只接受list of string

see https://docs.python.org/2/library/string.html#string.join
zhicheng
2015-05-22 20:43:01 +08:00
你说的是什么?
'-'.join(['a','b','c'])
这样?
evolighting
2015-05-22 20:51:55 +08:00
@zhicheng
具体来说,就是把list中的东西连起来,用分隔符分隔一下...用于输出......类似与格式化输出吧,但是这个列表,一是非常长,二是长度不定....其实说起来应该还是可以用格式化输出的方法搞定的.....不过不太明白怎么做
于是我用了一个愚蠢的方法解决这个问题,[x + "\t" for x in list] 这样.....
来这里问问,其实纯粹就是好奇....搜来搜去没有找到很好答案...嗯我是新来的....
evolighting
2015-05-22 20:53:11 +08:00
@Septembers
原来如此,我并没有理解这个东西的用法多谢了!
roychan
2015-05-22 21:05:04 +08:00
>>> from functools import reduce
>>> a = ['1', '2', '3']
>>> b = reduce(lambda x, y: x + '-' + y, a)
>>> b
'1-2-3'
>>>
zhicheng
2015-05-22 21:08:43 +08:00
赞楼上。。。。我决定把这题作为招聘笔试题。
roychan
2015-05-22 21:12:57 +08:00
@zhicheng 这方法比较麻烦…
zhicheng
2015-05-22 21:14:46 +08:00
哈哈哈,原来你不是在调侃。那么你没有Pass。。。
roychan
2015-05-22 21:49:36 +08:00
@zhicheng 才学了俩月=_=
roychan
2015-05-22 21:50:57 +08:00
@roychan 还是大一通识课学的 =_=
sirgod
2015-05-22 22:04:21 +08:00
@roychan reduce不用import吧?直接用就行了
zhyu
2015-05-22 22:06:58 +08:00
@sirgod python3
staticor
2015-05-22 22:10:44 +08:00
格式输出 pprint 有帮助吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/193072

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX