首页 > 解决方案 > 列表索引未正确更新

问题描述

打印列表索引在整个迭代过程中给出 0。

class Solution(object):
    def twoSum(self, nums, target):
        indices = []
        print len(nums)
        for i in nums:
            sum = 0
            i_ind = nums.index(i)
            print ("i_ind = %d"%(i_ind))
            for j in nums:
                j_ind = nums.index(j)
                print ("j_ind = %d"%(j_ind))
                if i_ind != j_ind:
                    sum = i+j
                    if sum == target:
                        indices.append(i_ind)
                        indices.append(j_ind)
                        return indices
    return 0

# test case
list1  = [3,3]
target = 6
test1  = Solution()
print(test1.twoSum(list1,target))

这给出了:

2
i_ind = 0
j_ind = 0
j_ind = 0
i_ind = 0
j_ind = 0
j_ind = 0

但我期望:

2
i_ind = 0
j_ind = 0
j_ind = 1

因为函数应该在找到前两个元素的总和为 6 后终止。

标签: pythonlist

解决方案


如果enumerate您想同时访问索引和元素,请使用。来到你的问题,

k = [1,1,2,2,3,3]
k.index(1)#always returns index of first occurrence. (0)
k.index(2)#always returns index of first occurrence. (2)

推荐阅读