我需要分开这个字符串:
s = "I have 10 cars"
到这样的列表:
['I','h','a','v','e',10,'c','a','r','s']
不应分开数字。也应该将数字输入为整数(没有这些'')
答案 0 :(得分:3)
res = []
for item in s.split(' '):
... try:
... int(item)
... res.append(item)
... except:
... res += list(item)
答案 1 :(得分:2)
这里的其他答案对于较大的字符串来说非常低效。
你应该不不必要地使用append
,因为使用更大的字符串可能会非常昂贵。按照我的方式,每次找到所需的新元素时,都不会调整list
的大小。为了提高效率,您可以这样做:
s = "I have 10 cars"
def seperateWithInts( l ):
for s in l.split():
if s.isdigit():
yield s
else:
for c in s:
yield c
s2 = [i for i in seperateWithInts(s)]
答案 2 :(得分:0)
这里是使用列表理解的单线程,这可能不是您的最佳选择。
firebase.min.js:110 POST
https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=[myKey] 400 ()
L.send @ firebase.min.js:110
S.xe @ firebase.min.js:151
Vf @ firebase.min.js:149
(anonymous function) @ firebase.min.js:154
H @ firebase.min.js:77
$f @ firebase.min.js:154
(anonymous function) @ firebase.min.js:162
e.za @ firebase.min.js:80
Cd @ firebase.min.js:84
yd @ firebase.min.js:84
H.Nd @ firebase.min.js:83
id @ firebase.min.js:77
基本上,你将字符串拆分成一个包含字符和数字的列表列表,然后你将列表整理得一塌糊涂。
答案 3 :(得分:-4)
尝试将其作为字符串返回。
list(str("I have 10 cars"))