如何将字符串分割为字符列表?Str.split不起作用。
"foobar" → ['f', 'o', 'o', 'b', 'a', 'r']
如何将字符串分割为字符列表?Str.split不起作用。
"foobar" → ['f', 'o', 'o', 'b', 'a', 'r']
当前回答
您也可以在列表操作中使用extend方法。
>>> list1 = []
>>> list1.extend('somestring')
>>> list1
['s', 'o', 'm', 'e', 's', 't', 'r', 'i', 'n', 'g']
其他回答
如果你只需要一个字符数组:
arr = list(str)
如果你想用一个特定的分隔符分隔str:
# str = "temp//temps" will will be ['temp', 'temps']
arr = str.split("//")
使用列表构造函数:
>>> list("foobar")
['f', 'o', 'o', 'b', 'a', 'r']
List使用通过迭代输入iterable获得的项构建一个新列表。字符串是一个可迭代对象——在每个迭代步骤中迭代它会产生一个单独的字符。
这个任务可以归结为遍历字符串中的字符并将它们收集到一个列表中。最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中使用筛选、映射和还原。
from itertools import chain
string = 'your string'
chain(string)
类似于list(string),但返回的生成器在使用点被延迟计算,因此内存效率高。
将字符串传递给list()
s = "mystring"
l = list(s)
print l