print ("-".join("fevicol"));
输出是:
f-e-v-i-c-o-l
可是:
print ("fevicol".join("-"));
输出是:
-
有人可以解释一下这个区别吗?
答案 0 :(得分:1)
'foo'.join('bar')
相当于str.join('foo', 'bar')
,意味着"将'foo'
放在'bar'
" ,所以会导致:
>>> str.join('foo', 'bar')
'bfooafoor'
如果您切换它,str.join('bar', 'foo')
表示"将'bar'
放在'foo'
" 中的每个字符之间,所以结果是:
>>> str.join('bar', 'foo')
'fbarobaro'
str.join
操作显然不是可交换的:更改参数的顺序会产生不同的输出。
另请注意,如果第二个参数中只有一个字符,则第一个参数中没有" between-character" 到put
的位置,所以你最后只有一个字符输出:
>>> str.join('foo', 'b')
'b'
如果查看早期输出的开头和结尾,可以看到第一个参数不是在第二个参数的第一个字符之前插入,也不是在最后一个字符之后插入。如果第二个参数是单个字符,那么该字符既是第一个也是最后一个,所以你不应该期望第一个参数插入到任何地方。
答案 1 :(得分:0)
>>> "first".join("second")
'sfirstefirstcfirstofirstnfirstd'
它是“将第一个字符串放在第二个字符串的每个字符之间”。
如果第二个字符串只是一个字符,那么第一个字符串放在哪里?所以,
>>> "first".join("s")
's'