How to split a string into an array of characters in Python?

前端 未结 13 1543
一整个雨季
一整个雨季 2020-11-22 01:54

I\'ve tried to look around the web for answers to splitting a string into an array of characters but I can\'t seem to find a simple method

str.split(//)

13条回答
  •  甜味超标
    2020-11-22 02:31

    The task boils down to iterating over characters of the string and collecting them into a list. The most naïve solution would look like

    result = []
    for character in string:
        result.append(character)
    

    Of course, it can be shortened to just

    result = [character for character in string]
    

    but there still are shorter solutions that do the same thing.

    list constructor can be used to convert any iterable (iterators, lists, tuples, string etc.) to list.

    >>> list('abc')
    ['a', 'b', 'c']
    

    The big plus is that it works the same in both Python 2 and Python 3.

    Also, starting from Python 3.5 (thanks to the awesome PEP 448) it's now possible to build a list from any iterable by unpacking it to an empty list literal:

    >>> [*'abc']
    ['a', 'b', 'c']
    

    This is neater, and in some cases more efficient than calling list constructor directly.

    I'd advise against using map-based approaches, because map does not return a list in Python 3. See How to use filter, map, and reduce in Python 3.

提交回复
热议问题