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

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

当前回答

解压缩:

word = "Paralelepipedo"
print([*word])

其他回答

这个任务可以归结为遍历字符串中的字符并将它们收集到一个列表中。最naïve的解决方案是这样的

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

当然,也可以缩写为just

result = [character for character in string]

但是仍然有更短的解来做同样的事情。

列表构造函数可用于将任何可迭代对象(迭代器、列表、元组、字符串等)转换为列表。

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

最大的优点是它在Python 2和Python 3中工作方式相同。

此外,从Python 3.5开始(多亏了强大的PEP 448),现在可以通过将任何可迭代对象解包为空列表文本来构建列表:

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

这比直接调用列表构造函数更简洁,在某些情况下也更有效。

我建议不要使用基于map的方法,因为map在Python 3中不会返回一个列表。请参阅如何在Python 3中使用筛选、映射和还原。

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

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

解压缩:

word = "Paralelepipedo"
print([*word])

使用列表构造函数:

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

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

将字符串传递给list()

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