Skip to main content
 首页 » 编程设计

Python 相似代码不同输出

2025年05月04日12kenshinobiy

在 python 解释器中,我输入以下代码:

params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secre 
t"} 
 
print "&".join("%s_%s" % (i,y) for i,y in params.items()) 

而且,可以理解,我得到以下输出:

pwd_secret&database_master&uid_sa&server_mpilgrim 

但是当我运行下面的代码时:

for i,y in params.items(): 
    print "&".join("%s_%s" % (i,y)) 

我得到了这个奇怪的输出:

p&w&d&_&s&e&c&r&e&t 
d&a&t&a&b&a&s&e&_&m&a&s&t&e&r 
u&i&d&_&s&a 
s&e&r&v&e&r&_&m&p&i&l&g&r&i&m 

两个代码块似乎做同样的事情。为什么输出不同?

请您参考如下方法:

str.join 作用于序列。在第一段代码中,它处理一系列字符串,而在第二段代码中,它在每个循环中只处理一个字符串。字符串本身就是(字符的)序列,所以...

>>> " ".join(["Hello", "world!"]) 
'Hello world!' 
>>> " ".join("Hello world!") 
'H e l l o   w o r l d !'