rank vote url
37 511 93 416 url

为什么是string.join(list)而不是list.join(string)?

我一直被这个问题困扰.如果这样写更好:

  1. my_list = ["Hello", "world"]
  2. print my_list.join("-")
  3. # Produce: "Hello-world"

而不是:

  1. my_list = ["Hello", "world"]
  2. print "-".join(my_list)
  3. # Produce: "Hello-world"

有什么特殊的原因让它不这样做吗?


是因为所有的可迭代对象都能被join,不仅仅是列表,但结果是我们一般要join的都是字符串.

例如:

  1. import urllib2
  2. print '\n############\n'.join(urllib2.urlopen('http://data.stackexchange.com/users/7095'))