如何将列表中的所有字符串转换为int

How to convert all strings in the list to int

在Python中,我想将列表中的所有字符串都转换为整数。

我的任务:我必须对一些整数进行简单求和。 但是,我不能在代码中使用以下内容:for,while,sum,map,reduce,filter,import,eval,exec,compile,single.

样本输入 0:

1 2 3 4

示例输出 0:

10

所以如果我有:

ls = ['1', '2', '3']

如何制作:

ls = [1, 2, 3]

def listSum(ls):

    def recursion(index, result):
        if index == len(ls):
            return result
        return recursion(index + 1, result + ls[index])

    return recursion(0, 0)

ls = (input()).split()

ls = list(map(int, ls))
# print((ls))
print(listSum(ls))

就像你试过的那样,你可以递归地做:

def recursive_sum(lst):
    if not lst:
        return 0
    else:
        return int(lst[0]) + recursive_sum(lst[1:])

print(recursive_sum([1, 2, 3]))
# 6

如果你想输入数字,只需这样做:

print(recursive_sum(input().split()))

要将数字字符串列表转换为整数列表,您可以使用这样的递归函数:

def convert(ls):
    return ls and [int(ls[0]), *listSum(ls[1:])]

您可以使用递归来获取问题的第一部分和第二部分:

b=['1', '2', '3', '4']
newarray=[] 
thesum=0
def recursion(hm): 
  global thesum, newarray
  if len(hm) == 0: 
     return thesum, newarray 
  thesum += int(hm[0])
  newarray.append(int(hm[0])) 
  return recursion(hm[1:]) 

recursion(b)  
# (10, [1, 2, 3, 4])

要将数字字符串列表转换为整数列表而不使用问题中列入黑名单的任何 keywords/names,您还可以从列表创建迭代器,并使用 iter带有回调函数的函数 returns 迭代器中的下一个项目,转换为整数,直到它耗尽迭代器:

ls = ['1', '2', '3']
i = iter(ls)
print(list(iter(lambda: int(next(i)), None)))

这输出:

[1, 2, 3]