如何在特定数组中计算distinct元素和puth distint值

2024-06-26 17:44:19 发布

您现在位置:Python中文网/ 问答频道 /正文

列是一个大约有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;   

Tags: in密码forifrangecolumn数组语句
1条回答
网友
1楼 · 发布于 2024-06-26 17:44:19

如果结果数组中的排序不相关,则可以使用集合:

lent=set(column) 

(或者list(set(column))如果您需要结果实际上是一个列表)

否则,可以使用集合作为辅助数据结构,以快速查看新数组是否已经有元素

s=set()
lent=[] 
for v in column:
    if v not in s:
        lent.append(v) 
        s.add(v) 

这两个都是O(n logn),与原始解的O(n^2)(或更糟)相比

相关问题 更多 >