我正在编写一个用于数组转换的函数。 我正在做的是,我希望将字符串转换为整数,而不要在包含“ +”,“-”,“ *”和“ /”的索引上转换。 功能在下面给出
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
有人可以告诉我如何纠正它吗?
答案 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