Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数字字符串转换为整数列表?_Python - Fatal编程技术网

Python 将数字字符串转换为整数列表?

Python 将数字字符串转换为整数列表?,python,Python,例如,我被要求转换一个混合数字串(“1 3 5 8 10”),我的目标是将这些数字作为整数放入一个列表中 我有将字符串和int()拆分成整数的知识和诀窍,但问题在于我是如何做到的。 我遇到的具体问题是在字符串中循环,查找字符并将其转换为整数。 当它循环通过并达到10(或任何2位数字)时,它将每个数字转换为自己的数字;所以:10应该是[1,0],而不是[10] 请原谅这里的代码混乱,我一直在尝试通过打印查看每一步都发生了什么: def iq_test(numbers): print(num

例如,我被要求转换一个混合数字串(“1 3 5 8 10”),我的目标是将这些数字作为整数放入一个列表中

我有将字符串和int()拆分成整数的知识和诀窍,但问题在于我是如何做到的。
我遇到的具体问题是在字符串中循环,查找字符并将其转换为整数。
当它循环通过并达到10(或任何2位数字)时,它将每个数字转换为自己的数字;所以:10应该是[1,0],而不是[10]

请原谅这里的代码混乱,我一直在尝试通过打印查看每一步都发生了什么:

def iq_test(numbers):
    print(numbers)
    nums = []
    numbers.split(" ")
    nums.append(numbers)
    print (numbers)
    for char in numbers:
        if char == " ":
            del char
        else:
            nums.append(int(char))  # Problem arises here, where a 2 digit number is being added to the list as 2 separate numbers
    print(nums)
对编码还是很陌生的,所以如果你注意到我遇到的一个主要的逻辑问题,如果你能指出给我听,我将不胜感激

def iq_test(numbers):
    nums = []
    for num in numbers.split():
        nums.append(int(num)) 
我想。。。你可以(也可能应该)只做一个列表理解

 nums = [int(num) for num in numbers.split()]
我想。。。你可以(也可能应该)只做一个列表理解

 nums = [int(num) for num in numbers.split()]

您在迭代中使用了错误的数组,并且进行了一些错误的转换:

def iq_test(numbers):
    print(numbers)
    nums = []
    for number in numbers.split(" "):
         nums.append(int(number))
    print(nums)

您在迭代中使用了错误的数组,并且进行了一些错误的转换:

def iq_test(numbers):
    print(numbers)
    nums = []
    for number in numbers.split(" "):
         nums.append(int(number))
    print(nums)
首先,
numbers.split(“”
本身并没有做任何有用的事情。将其分配给一个变量。此外,如果您不提供任何参数,它将始终在空格上拆分,因此您可以使用它

nums = numbers.split()
这样,您应该使用
for num in nums
在分割的元素上循环,而不是在输入字符串的字符上循环

在任何情况下,您都可以通过使用列表理解来应用该int函数并返回整数列表来缩短所有这些

您已经定义了一个函数,因此您应该
返回值
,而不仅仅是打印它

nums = [int(s) for s in numbers.split()] 
return nums
然后你会打印(智商测试(“12310”)首先,
数字。单独拆分(“”
)没有任何用处。将其分配给一个变量。此外,如果您不提供任何参数,它将始终在空格上拆分,因此您可以使用它

nums = numbers.split()
这样,您应该使用
for num in nums
在分割的元素上循环,而不是在输入字符串的字符上循环

在任何情况下,您都可以通过使用列表理解来应用该int函数并返回整数列表来缩短所有这些

您已经定义了一个函数,因此您应该
返回值
,而不仅仅是打印它

nums = [int(s) for s in numbers.split()] 
return nums

然后你可以打印(iq测试(“12310”)你可以使用正则表达式:

import re
s = "1 3 5 8 10"
final_data = list(map(int, re.findall('\d+', s)))
print(final_data)
输出:

[1, 3, 5, 8, 10]

您可以使用正则表达式:

import re
s = "1 3 5 8 10"
final_data = list(map(int, re.findall('\d+', s)))
print(final_data)
输出:

[1, 3, 5, 8, 10]

这似乎正是我需要的解决方案。谢谢你详细说明了我的错误所在。干杯这似乎正是我需要的解决方案。谢谢你详细说明了我的错误所在。干杯