如何将字符串和整数分隔到列表中

时间:2016-07-06 20:07:22

标签: python string list python-3.x int

我需要分开这个字符串:

s = "I have 10 cars"

到这样的列表:

['I','h','a','v','e',10,'c','a','r','s']

不应分开数字。也应该将数字输入为整数(没有这些'')

4 个答案:

答案 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"))