带枚举的for循环-索引位置

时间:2020-03-11 01:53:52

标签: python for-loop indexing enumerate

我有一种解决方案,可以删除列表中的重复项。在此解决方案中使用枚举。

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]开始了for循环,因此num1, num2中每个交互的位置是什么?

2 个答案:

答案 0 :(得分:0)

枚举对一个可迭代对象(在这种情况下为list_input)进行迭代,并且每次迭代都将第一个值(在这种情况下为num1)设置为当前索引,并将第二个值(在这种情况下) num2)到此索引处的iterable值。

例如,在第一次迭代中,num1 == 0将从迭代的零位元素开始,而num2 == 1则为list_input[0] == 1list_input[0:num1] == []中没有任何内容,因此该值将附加到输出中。

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

答案 1 :(得分:0)

这个问题需要详细说明,请修正格式。但是,如果我理解正确,如果您想删除重复项,并且需要非重复项的每个元素(数字)的位置或索引,则可以使用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
相关问题