enumerate
是一个迭代器.迭代器只能使用一次; 在那之后,他们是空的.
简单(和惯用)解决方案是enumerate
为每个循环创建一个新的迭代器:
def miniMaxSum(arr): maxNum = 0 indexMax = -1; for a,b in enumerate(arr): if b > maxNum: maxNum = b indexMax = a for index,number in enumerate(arr): print("hello")
如果需要多次使用迭代器,可以将其保存到列表中,然后重用该列表.只需改变这一行
eArr = enumerate(arr)
......对此:
eArr = list(enumerate(arr))
在这种情况下,没有理由这样做.你只是浪费内存来构建列表.(至于速度,它对于非常小的列表来说可能要快一点,但对于非常大的列表来说可能要慢一些 - 但对于你的代码来说它可能无关紧要.)但是有些情况下它很有用,所以值得知道如何做.
enumerate
是一个迭代器.迭代器只能使用一次; 在那之后,他们是空的.
简单(和惯用)解决方案是enumerate
为每个循环创建一个新的迭代器:
def miniMaxSum(arr): maxNum = 0 indexMax = -1; for a,b in enumerate(arr): if b > maxNum: maxNum = b indexMax = a for index,number in enumerate(arr): print("hello")
如果需要多次使用迭代器,可以将其保存到列表中,然后重用该列表.只需改变这一行
eArr = enumerate(arr)
......对此:
eArr = list(enumerate(arr))
在这种情况下,没有理由这样做.你只是浪费内存来构建列表.(至于速度,它对于非常小的列表来说可能要快一点,但对于非常大的列表来说可能要慢一些 - 但对于你的代码来说它可能无关紧要.)但是有些情况下它很有用,所以值得知道如何做.