带有枚举的 For 循环 - 索引位置

For loop with enumerate - index position

我有一个从列表中删除重复项的解决方案。在这个解决方案中使用了枚举。

def myfunc(list_input):
    list_output=[]
    for num1, num2 in enumerate(list_input):
        if num2 not in list_input[0:num1]:
            list_output.append(num2)
    return list_output

print(myfunc([1,1,2,3])) --> ,[1,2,3,]

但是,我不明白我们应该以何种方式读取枚举的索引位置。

list_input[0:num1] 中每个交互的位置是什么,考虑到我们已经用 num1, num2 开始了 for 循环?

Enumerate 遍历一个可迭代对象(在本例中为 list_input),每次迭代都将第一个值(在本例中为 num1)设置为当前索引,将第二个值(在本例中为 num1)这种情况 num2) 到此索引处的可迭代值。

例如,在第一次迭代中,num1 == 0 作为迭代从第 0 个元素开始,num2 == 1 作为 list_input[0] == 1list_input[0:num1] == [] 所以里面什么都没有,因此值被附加到输出。

在第二次迭代中,索引增加了 1,因此 num1 == 1list_input[0:num1] == [1] 现在,由于 num2[1] 中,该值不会附加到输出列表。

问题需要详细说明,请修改格式。但是如果我理解正确的话,如果你想删除重复项并且需要非重复项的每个元素(数字)的定位或索引,你可以使用 enumerate() 并可能做这样的事情:

nums = [1,1,3,5,7,9]
newlist = []
for num in nums:
  if num not in newlist:
    newlist.append(num)
for index, nums in enumerate(newlist):
  print("Index positioning: %s and Number at respective index is: %s" % (index,nums))

输出:

Index positioning: 0 and Number at respective index is: 1
Index positioning: 1 and Number at respective index is: 3
Index positioning: 2 and Number at respective index is: 5
Index positioning: 3 and Number at respective index is: 7
Index positioning: 4 and Number at respective index is: 9