【问题标题】:an elegant way to concatenate a list of chars in a string in Python [duplicate]在Python中连接字符串中的字符列表的一种优雅方法[重复]
【发布时间】:2012-11-09 18:10:34
【问题描述】:

可能重复:
How can I optimally concat a list of chars to a string?

我有一个字符列表:

['h', 'e', 'l', 'l', 'o']

有没有一种方法可以将此类列表的元素连接到一个不需要类似 c 的“for”循环的字符串“hello”中?谢谢。

【问题讨论】:

    标签: python string list char concatenation


    【解决方案1】:

    是的。使用str.join

    >>> chars = ['h', 'e', 'l', 'l', 'o']
    >>> ''.join(chars)
    'hello'
    

    【讨论】:

      【解决方案2】:

      str.join

      >>> list('hello')
      ['h', 'e', 'l', 'l', 'o']
      >>> ''.join(_)
      'hello'
      

      很有效:

      from operator import add
      reduce(add, ['h', 'e', 'l', 'l', 'o'])
      

      但是针对字符串进行了优化,它也只允许字符串,否则会引发TypeError

      【讨论】:

        【解决方案3】:

        这是在 Python 中连接字符串的常用方法:

        ''.join(list_of_chars)
        

        事实上,这就是recommended 的方式——出于可读性和效率的原因。例如:

        ''.join(['h', 'e', 'l', 'l', 'o'])
        => 'hello'
        

        【讨论】:

        • 特别有趣的是python甚至不会让你尝试在上面使用sum>>> sum(['h','e','l','l','o'],'')
        • @mgilson,如果你说漂亮,它会:sum(['h','e','l','l','o'], type('',(),{'__add__': lambda s, o: o})())
        • @eryksun -- 我认为这有点超出“非常请”......不过,这太不可思议了。这让我今天早上露出了灿烂的笑容。谢谢你。
        猜你喜欢
        • 2017-10-22
        • 2014-06-09
        • 2012-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-13
        • 1970-01-01
        相关资源
        最近更新 更多