从数组中删除出现次数超过 k 次的元素

Remove elements from the array which appear more than k times

该程序给出的输出为

1 6 7 9 11

如何让它输出为

[1, 6, 7, 9, 11]

代码:

def RemoveElements(my_lst2, n, k): 

    mp = {i:0 for i in range(len(my_lst2))} 

    for i in range(n): 
        mp[my_lst2[i]] += 1

    for i in range(n): 
        if (mp[my_lst2[i]] <= 1): 

            print(my_lst2[i], end = " ",)
if __name__ == '__main__': 
    my_lst2 = [0,1,2,3,2,3,4,5,4,5,6,7,9,11,0,5]
    n = len(my_lst2)
    k = 2

RemoveElements(my_lst2, n, k)

现在您正在执行 print(my_lst2[i], end = " ",),它会按您当前的方式打印出来。如果您将 my_lst2[i] 存储在一个列表中,然后打印出该列表,您将得到您想要的。

def RemoveElements(my_lst2, n, k):

    mp = {i:0 for i in range(len(my_lst2))}

    for i in range(n):
        mp[my_lst2[i]] += 1

    l = []

    for i in range(n):
        if (mp[my_lst2[i]] <= 1):
            l.append(my_lst2[i])

    print(l)