我想从一个字符串中提取整数,其中整数由空格分隔,即''.我怎么能这样做?
输入
I='1 15 163 132'
Run Code Online (Sandbox Code Playgroud)
结果:
[1,15,163,132]
Run Code Online (Sandbox Code Playgroud)
所以我写了一个像这样的函数
def getIt(aStr):
collect = []
i=0
while i < len(aStr):
print('i = ' + str(i))
if aStr[i]!=' ':
j=0
while aStr[i+j]!=' ' or (i+j)<=len(aStr)-1:
print('j = '+str(j))
j+=1
if i+j==len(aStr):
collect.append(int(aStr[i:i+j-1]))
else:
collect.append(int(aStr[i:i+j]))
i+=j+1
else:
i+=1
return collect
Run Code Online (Sandbox Code Playgroud)
删除条件时代码运行完美
while aStr[i+j]!=' ':# or (i+j)<=len(aStr)-1:
Run Code Online (Sandbox Code Playgroud)
并在每个输入字符串的末尾放置一个空格.请告知我哪里出错了?
试试这段代码:
myIntegers = [int(x) for x in I.split()]
Run Code Online (Sandbox Code Playgroud)
说明:
其中s是要拆分的字符串,a是要用作分隔符的字符串.然后:
s.Split(a)
Run Code Online (Sandbox Code Playgroud)
在发生a的那些点处拆分字符串s,并返回已拆分的子字符串列表.
如果没有提供参数,例如:s.Split()则默认使用空格(例如空格,制表符,换行符)作为分隔符.
具体来说,在你的情况下:
I = '1 15 163 132'
I = I.split()
print(I)
Run Code Online (Sandbox Code Playgroud)
["1","15","163","132"]
它会创建一个字符串列表,在特定示例中有空格的点处分隔.
这是关于字符串split()方法的官方python 文档.
现在我们使用所谓的List Comprehensions将列表中的每个元素转换为整数.
myNewList = [operation for x in myOtherList]
Run Code Online (Sandbox Code Playgroud)
以下是它正在做的细分:
具体来说,在你的情况下:
myIntegers = [int(x) for x in I.split()]
Run Code Online (Sandbox Code Playgroud)
执行以下操作:
有关更多信息,请参阅List Comprehensions上的官方python 文档.
希望这对你有所帮助.