我有以下代码:
code1
lis = ["a", "s", "d"]
string.join(lis)code2
lis = ["a", "s", "d"]
' '.join(lis)结果:
这两种情况的结果都是'a s d'。
现在,应该有一些情况(如果我是正确的),当'sep‘的值与’‘不同时,它是默认的分隔值。我真的很想知道这些个案是何时发生的?
我有以下疑问:
在python2.x.
’。
提前谢谢..。
发布于 2011-01-31 08:29:44
这两种说法是等价的。
string.join( words,sep)将一个或多个单词组与插入的sep连接在一起。sep的默认值是单个空格字符。
至于第二个案件:
str.join(迭代)返回一个字符串,该字符串是可迭代迭代中字符串的级联。元素之间的分隔符是提供此方法的字符串。
由于第二个版本仍然存在于Python 3中,所以您可以使用该版本,而不会出现任何问题。
资料来源:
string.join() (static method)join() (string method)发布于 2011-01-31 08:32:24
我不得不查找它-- string的很大一部分已经过时(用真实的str对象上的实际方法代替);因此,即使在Python2中,也应该使用' '.join。但是没有,用单个空格连接string.join是没有区别的(即' '.join是等效的)。
发布于 2011-01-31 09:21:19
无显着性差异。在所有可以使用第一种形式的情况下,第二种形式将有效,而第二种形式将继续在Python 3上工作。
但是,有些人发现,在文字字符串上编写方法调用看起来很不舒服,如果您是其中之一,那么还有一些其他选项需要考虑:
' '.join(iterable) # Maybe looks a bit odd or unfamiliar?您可以使用名称而不是文字字符串:
SPACE = ' '
...
SPACE.join(iterable) # Perhaps a bit more legible?或者您可以使用类似于string.join()的方式编写它,但是要注意,参数是相反的:
str.join(' ', iterable)最后,高级选项是使用未绑定方法。例如:
concatenate_lines = '\n'.join
...
print(concatenate_lines(iterable))其中任何一个都会有效,只要选择你认为读起来最合适的。
https://stackoverflow.com/questions/4848862
复制相似问题