【发布时间】:2019-07-08 18:29:05
【问题描述】:
这次我尝试使用 python 获得最大对数产品,某些方面的概念对我来说仍然是新的。鉴于我无法在 Python 中选择类型,我继续得到一个列表索引越界错误和 stackoverflows,我不知道如何处理。
我查看了 enumerate 和其他 iterate(ble) 函数,但无济于事。我回答这可以帮助未来的人解决从 C 迁移到 python 的简单 for 循环问题。
def max_pairwise_product(numbers):
n = len(numbers)
max_product = 0
for first in range(n):
for second in range(first + 1, n):
max_product = max(max_product,
numbers[first] * numbers[second])
return max_product
def max_pairwise_product_fast(numbers):
n = len(numbers)
index1 = 1
for i in range(2,n,1):
if (numbers[i]>numbers[index1]):
index1 = i
if (index1 == 1):
index2 = 2
else:
index2=1
for i in range(1,n):
if(numbers[i]!=numbers[index1] and numbers[i]>numbers[index2]):
index2 = i
return (numbers[index1]*numbers[index2])
if __name__ == '__main__':
input_n = int(input())
input_numbers = [int(x) for x in input().split()]
print(max_pairwise_product_fast(input_numbers))
Traceback (most recent call last):
File "C:/Users/Tevin/.PyCharmCE2018.3/config/scratches/scratch_1.py", line 31, in <module>
print(max_pairwise_product_fast(input_numbers))
File "C:/Users/Tevin/.PyCharmCE2018.3/config/scratches/scratch_1.py", line 27, in max_pairwise_product_fast
return (numbers[index1]*numbers[index2])
IndexError: list index out of range
【问题讨论】:
-
首先阅读如何在python中使用for循环,您可以直接迭代列表并避免导致您的问题和混乱的索引,然后阅读以下ericlippert.com/2014/03/05/how-to-debug-small-programs
标签: python stack-overflow indexoutofboundsexception