TypeError字符串为整数

时间:2018-09-24 17:00:44

标签: python

我正在编写一个用于数组转换的函数。 我正在做的是,我希望将字符串转换为整数,而不要在包含“ +”,“-”,“ *”和“ /”的索引上转换。 功能在下面给出

def Str_to_int(arr):
    arr1 = [len(arr)]
    arr2 = [len(arr)]
    for i in arr:
        if arr[i] != '+' or arr[i] != '-' or arr[i] != '*' or arr[i] != '/':
            arr2[i] = arr[i]
        else:
            arr1[i] = arr[i]
    return arr2 

我称这个函数为

var1 = input("Enter String  \n")
var2 = Str_to_int(var1)
print(var2)

但这给我一个错误

Traceback (most recent call last):
var2 = Str_to_int(var1)
if arr[i] != '+' or arr[i] != '-' or arr[i] != '*' or arr[i] != '/':
TypeError: string indices must be integers

有人可以告诉我如何纠正它吗?

3 个答案:

答案 0 :(得分:2)

您要遍历列表的元素,而不是索引。也就是说,i应该是arr[i]的样子。由于您实际上需要索引,因此可以显式遍历它们:

for i in range(len(arr)):

尽管更Python化的习惯用法是使用enumerate函数,它同时为您提供列表的元素和的索引。

for i, x in enumerate(arr):
    if x not in '+-*/':
        arr2[i] = x
    else:
        arr1[i] = x

答案 1 :(得分:1)

这里的问题是您正在使用for i in arr遍历字符串。当遍历这样的字符串时,i是字符串中的字符,而不是数字值。这就是为什么您无法访问arr[i]

答案 2 :(得分:0)

我认为您可能想枚举列表。使用this.$router.push({query: {plan: 'private'}}),您将遍历字符串for i in arr中的字符,然后尝试使用这些字符进行索引。例如,如果arr为“字符串”,则:

arr