Column是一个包含大约10000个值的数组,其中也包含重复值。我想要一个数组darray
,它应该只包含不重复的不同值。我试图通过这个代码来做。但是darray
的长度为0。break语句有一些问题。使用break我想从内部的两个循环中走出来但不是第三个循环。帮助我。
darray=[]
m=0
for d in range(0,length):
f=0
for r in range(d,length):
if f==1:
break
for l in range(0,m):
if column[r] == darray[l]:
f=1
break
elif column[d] == column[r]:
darray.append(column[d])
m+=1
f=1
break
lent = len(darray)
print lent;
答案 0 :(得分:0)
如果结果数组中的排序不相关,则可以使用集合:
lent=set(column)
(或list(set(column))
如果您需要结果实际上是列表)
否则,您可以使用set作为辅助数据结构来快速查看新数组是否已有元素。
s=set()
lent=[]
for v in column:
if v not in s:
lent.append(v)
s.add(v)
与天真解决方案的O(n ^ 2)(或更差)相比,这两者都是O(n log n)。