请帮我修复这个代码。这是一个反转整数数组的函数,例如:[1,2,3,4,5]->;[5,4,3,2,1]。错误是:
builtins.TypeError: unsupported operand type(s) for /: 'list' and 'int'
请给我一个解决办法。谢谢
def reverse(array):
'''
[1,2,3,4,5] -> [5,4,3,2,1]
This method returns a reversed integer array.
'''
size = len(array)
halfsize = array/2
size -= 1
r = array[size]
temp = None
for s in range(0, halfsize):
temp = arrayOne[s]
array[s] = r
array[size] = temp
size -= 1
r=arrayOne[size]
return arrayOne
a = reverse ([1, 4, 3, 4, 5])
有一个更简单的方法。你知道吗
例如,如果您输入[2,3,4,5],它将返回[5,4,3,2]。你知道吗
它使用queue 数据结构(使用insert将数据加入队列)将其反转,然后读取队列的数据。Insert用于在数组开头插入数据。你知道吗
你需要划分长度,而不是列表:
它使用floor division(
//
)操作符来确保结果是整数。你知道吗下一个问题是,您在多个位置引用了
arrayOne
,但将参数命名为array
;修复这些引用,您的函数就可以工作了:您的函数可以稍微简化;您不需要
temp
变量,因为Python允许您就地交换值:另请注意,您正在原地反转列表;这里不需要返回结果列表对象:
你得到了一个异常,因为它是一个列表。在此行中:
您正在将列表除以int。您应该使用
相反。但是,因为我不知道arrayOne来自哪里,我真的说不出问题出在哪里。你知道吗
但是,我将在这里发布另一种解决方案,它使用递归:)
递归是您的朋友:) 试着用它。你知道吗
而且,如果您不是出于学习目的而这样做,请使用列表的反向内置函数
作为一个大结局,一个吸血鬼式的方式:
相关问题 更多 >
编程相关推荐