突发奇想然后把自己难为了很长时间,主要还是自己菜,设想是这样的,当给出一个数组不知道任意数组下标也不知道下标对应的值是多少,只能确定数组中存在重复数据,如何剔除这些重复数据不用set()函数转成集合再转列表。
自己在给自己找个蹩脚的麻烦:然后得出的结论也非常的蹩脚,希望感兴趣的大佬能指正下
n = [1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 14, 14, 15, 17] # 随便设定的数组,如题假装默认不知道值和下标
n.sort()
b = []
c = []
def f1(s, i=0, o=1): #我的想法是先把数组中重复数据的下标找出,然后通过下标改变重复数据的值为统一值后,一同剔除
for t in s:
c.append(n.index(t))
while i < len(c):
k = o
j = o
while k < len(c):
if c[i] == c[j]:
b.append(c[i])
k += 1
j += 1
i += 1
o += 1
return b
q = f1(n)
k2 = len(q)
k1 = 0
#想了半天的结果,感觉自己太菜了,以至于如果是多个重复数据想要直接剔除在我写的程序下无法完成,只能先完成两个重复数据的剔除
然后得到新的数组再次剔除.....估计也能想到了,只不过写这个就头大了,只有真的上手才明白自己的弱小.
while k2 > 0:
k3 = q[k1]
n[k3] = 's'
k1 += 1
k2 -= 1
for k4 in q:
n.remove('s')
print(n)