如何将字符串分割为字符列表?Str.split不起作用。
"foobar" → ['f', 'o', 'o', 'b', 'a', 'r']
如何将字符串分割为字符列表?Str.split不起作用。
"foobar" → ['f', 'o', 'o', 'b', 'a', 'r']
当前回答
要分割字符串s,最简单的方法是将其传递给list()。所以,
s = 'abc'
s_l = list(s) # s_l is now ['a', 'b', 'c']
你也可以使用列表推导式,这是可行的,但不像上面那样简洁:
s_l = [c for c in s]
当然还有其他方法,但这些方法就足够了。 之后,如果你想重新组合它们,简单地调用"".join(s_l)将使你的列表恢复到以前的字符串形式…
其他回答
解压缩:
word = "Paralelepipedo"
print([*word])
将字符串传递给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
好吧,尽管我很喜欢列表的版本,这里是我发现的另一种更详细的方法(但它很酷,所以我想我将它添加到争论中):
>>> 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():
>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']