【发布时间】:2018-12-29 16:39:04
【问题描述】:
如果我将列表输入为[3,3,4],为什么第二个 for 循环 (j) 在迭代期间会跳过 j=1?我希望 answer_list 在运行后是 [0,1]。
如果我将列表输入为[1,2,4],一切都很好。
class Solution:
def twoSum(self, nums: object, target: object) -> object:
Answer_list = []
for i in nums:
print("i_index:", nums.index(i))
for j in nums:
print("j_index:" ,nums.index(j))
if target - i - j == 0:
print (i,j)
Answer_list.append(nums.index(i))
Answer_list.append(nums.index(j))
print("Answer List:", Answer_list)
return list(set(Answer_list))
s=Solution()
print(s.twoSum([3,3,4], 6))
【问题讨论】:
-
请不要发布无用的
Solution类。始终努力提供minimal reproducible example -
你的代码应该做什么?
-
for j in nums使 j 采用 nums 中的所有值。如果 nums 是[3,3,4],j 永远不会是 1... -
另外:
index(3)永远不会为[3, 3, 4]返回 1,但在 both 情况下返回 0。你不应该依赖index来达到你的目的。在for循环中使用enumerate。