2012-02-26 50 views
0
a = ('a', 'b', 'c') 
print(''.join(a)) 

什么是''上线两个含义?字符串模块和这个''对象有什么区别吗?直观Python字符串连接语法

+0

''''表示我们加入另一个字符串的空字符串。这是一个更pythonic的方式来做字符串连接 – zengr 2012-02-26 09:12:18

回答

6

''表示我们加入另一个字符串的空字符串。这是执行字符串连接的更pythonic方式。

检查了这一点更多的见解:http://www.skymind.com/~ocrow/python_string/

PEP3126说(尽管其拒绝):

相反的:

“ABC”, “DEF” == “ABCDEF”

作者需要明确,并添加字符串:

“ABC” + “DEF” == “ABCDEF”

或加入其中:

“”。加入([ “ABC”, “DEF”])== “ABCDEF”

所以,两者都是一样的东西,加入只是更pythonic。

+0

@zenger它是否为优良的性能进行了优化? – Dewsworld 2012-02-26 09:31:19

+0

是的,如果你看到博客文章中的基准,它比字符串+字符串concat更快。所以,是的。更好的表现和更pythonic。类似的问题:http://stackoverflow.com/questions/476772/python-string-join-performance – zengr 2012-02-26 09:38:41

+0

请注意,PEP 3126被标记为拒绝。 – Duncan 2012-02-26 10:04:42

3

您提供的代码片段创建一个包含空字符串的字符串对象,然后调用其中一个方法。这是several ways to concatenate strings之一。

+0

10秒的差异;) – zengr 2012-02-26 09:14:04

0

连接是str的metod。因此,''in .join(可迭代)中的''是元素之间的分隔符,元素是迭代中的项目(它们需要是字符串)。这非常有用,特别是当分隔符不仅仅是'',而是'','join'(可迭代)时,这会给你一个单一的字符串,它是用逗号分隔的所有迭代项。