[英]String of numbers to a list of integers?
例如,我已经完成了将一串混合数字(“ 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)
对于编码来说还是很新的,所以如果您注意到我遇到的一个主要逻辑问题,那么如果您向我指出这一点,我将不胜感激。
首先, numbers.split(" ")
本身并没有做任何有用的事情。 将其分配给变量。 另外,如果不提供任何参数,它将始终在空格上分割,因此可以使用它。
nums = numbers.split()
就这样,你应该使用for num in nums
来遍历分割元素,而不是遍历输入字符串的字符 。
无论如何,您都可以通过使用list-comprehension来应用该int函数并返回整数列表来缩短所有这些时间。
并且您已经定义了一个函数,因此您应该return
值,而不仅仅是打印它。
nums = [int(s) for s in numbers.split()]
return nums
然后您将print(iq_test("1 2 3 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]
def iq_test(numbers):
nums = []
for num in numbers.split():
nums.append(int(num))
我想...您可以(也许应该)只是进行列表理解
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.