如何将字符串分割为字符列表?Str.split不起作用。
"foobar" → ['f', 'o', 'o', 'b', 'a', 'r']
如何将字符串分割为字符列表?Str.split不起作用。
"foobar" → ['f', 'o', 'o', 'b', 'a', 'r']
当前回答
如果你想一次处理一个字符串字符。你有多种选择。
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
其他回答
使用列表构造函数:
>>> list("foobar")
['f', 'o', 'o', 'b', 'a', 'r']
List使用通过迭代输入iterable获得的项构建一个新列表。字符串是一个可迭代对象——在每个迭代步骤中迭代它会产生一个单独的字符。
我探索了另外两种方法来完成这项任务。它可能对某人有帮助。
第一个很简单:
In [25]: a = []
In [26]: s = 'foobar'
In [27]: a += s
In [28]: a
Out[28]: ['f', 'o', 'o', 'b', 'a', 'r']
第二个使用map和函数。它可能适用于更复杂的任务:
In [36]: s = 'foobar12'
In [37]: a = map(lambda c: c, s)
In [38]: a
Out[38]: ['f', 'o', 'o', 'b', 'a', 'r', '1', '2']
例如
# isdigit, isspace or another facilities such as regexp may be used
In [40]: a = map(lambda c: c if c.isalpha() else '', s)
In [41]: a
Out[41]: ['f', 'o', 'o', 'b', 'a', 'r', '', '']
有关更多方法,请参阅python文档
解压缩:
word = "Paralelepipedo"
print([*word])
你也可以用这种非常简单的方式来做,没有list():
>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
您也可以在列表操作中使用extend方法。
>>> list1 = []
>>> list1.extend('somestring')
>>> list1
['s', 'o', 'm', 'e', 's', 't', 'r', 'i', 'n', 'g']