我有一种解决方案,可以删除列表中的重复项。在此解决方案中使用枚举。
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
中每个交互的位置是什么?
答案 0 :(得分:0)
枚举对一个可迭代对象(在这种情况下为list_input
)进行迭代,并且每次迭代都将第一个值(在这种情况下为num1
)设置为当前索引,并将第二个值(在这种情况下) num2
)到此索引处的iterable值。
例如,在第一次迭代中,num1 == 0
将从迭代的零位元素开始,而num2 == 1
则为list_input[0] == 1
。 list_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