为什么会这样字符串.连接(列表)而不是列表.加入(字符串)?

  • 问题:
  • 这一直让我困惑。看起来这样会更好:

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

    比这更重要的是:

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

    是不是有什么特别的原因?在

  • 答案:
  • 这是因为任何iterable都可以联接(例如list、tuple、dict、set),但是结果和“joiner”必须是字符串

    例如:

    '_'.join(['welcome', 'to', 'stack', 'overflow'])
    '_'.join(('welcome', 'to', 'stack', 'overflow'))
    'welcome_to_stack_overflow'

    使用字符串以外的内容将引发以下错误:

    TypeError:序列项0:应为str实例,但找到int