2017-06-18 295 views
0

我有一个未知的数字列表(数字在程序中稍后输入),我试图找到列表中最大的那个,然后将它存储在一个变量中我可以稍后再做它的增殖。当我使用max()我得到一个错误说:我的代码,在列表中找到的最大号“类型错误不能按类型‘列表’非INT繁衍序列”是:Python - 如何从列表中获取整数

def adjacentElementsProduct(inputArray): 
    input_list = [inputArray] 
    numb1 = max(input_list) 
    print(numb1) 

我的全代码是

def adjacentElementsProduct(inputArray): 
input_list = inputArray 
numb1 = max(input_list) 
print(numb1) 
location = input_list.index(numb1) 
if numb1 == input_list[-1]: 
    test2 = input_list[location-1] 
    small_list = [test2] 
    numb3 = small_list[0] 
    return numb1 * numb3 
elif numb1 == input_list[0]: 
    test1 = input_list[location+1] 
    small_list = [test1] 
    numb3 = small_list[0] 
    return numb1 * numb3 
else: 
    test1 = input_list[location+1] 
    test2 = input_list[location-1] 
    greater_list = [test1, test2] 
    numb2 = max(greater_list) 
    return numb1 * numb2 
+0

显示完整的回溯。不清楚'inputArray'是什么。显示问题的完整示例用法 –

回答

-1

问题是,您正在列表中列出一个列表。您将函数传递给一个列表,并将其放入方括号中,从而创建一个2d列表。试试这个:

def adjacentElementsProduct(inputArray): 
    input_list = inputArray 
    #or: 
    #input_list = [inputArray] 
    #numb1 = max(input_list[0]) 
    numb1 = max(input_list) 
    print(numb1) 
+0

只要使用'max(inputArray)',如果您打算这样做 –

+0

我同意。但是,我试图尽可能地将我的解决方案与OP的相匹配。 – Ajax1234

+0

你不是很快就假定参数已经是一个列表吗?所提到的错误甚至没有被max函数 –