如何将字符串分割为字符列表?Str.split不起作用。

"foobar"    →    ['f', 'o', 'o', 'b', 'a', 'r']

当前回答

你也可以用这种非常简单的方式来做,没有list():

>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']

其他回答

使用列表构造函数:

>>> list("foobar")
['f', 'o', 'o', 'b', 'a', 'r']

List使用通过迭代输入iterable获得的项构建一个新列表。字符串是一个可迭代对象——在每个迭代步骤中迭代它会产生一个单独的字符。

好吧,尽管我很喜欢列表的版本,这里是我发现的另一种更详细的方法(但它很酷,所以我想我将它添加到争论中):

>>> text = "My hovercraft is full of eels"
>>> [text[i] for i in range(len(text))]
['M', 'y', ' ', 'h', 'o', 'v', 'e', 'r', 'c', 'r', 'a', 'f', 't', ' ', 'i', 's', ' ', 'f', 'u', 'l', 'l', ' ', 'o', 'f', ' ', 'e', 'e', 'l', 's']

将字符串传递给list()

s = "mystring"
l = list(s)
print l

如果你想一次处理一个字符串字符。你有多种选择。

uhello = u'Hello\u0020World'

使用列表推导式:

print([x for x in uhello])

输出:

['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']

使用地图:

print(list(map(lambda c2: c2, uhello)))

输出:

['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']

调用内置列表函数:

print(list(uhello))

输出:

['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']

使用for循环:

for c in uhello:
    print(c)

输出:

H
e
l
l
o

W
o
r
l
d

您也可以在列表操作中使用extend方法。

>>> list1 = []
>>> list1.extend('somestring')
>>> list1
['s', 'o', 'm', 'e', 's', 't', 'r', 'i', 'n', 'g']