返回重复N次的列表元素的函数

2024-04-20 15:13:22 发布

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

我需要写一个函数rep(lst, k),其中lst是一个整数列表,k是它们出现的次数。例如,如果我有一个列表:

lst = [1,2,1,5,3,4,2,1,3,5,6]

然后启动命令rep(lst,2),它需要返回一个不重复的列表,其中包含重复k次的数字,如:

rep(lst, 2)
# returns  [1,2,5,3]

我该怎么做?我可以编写一个函数来计算某个特定变量的出现次数,但我不能这样做,计数只会返回列表中元素的数量。你知道吗


Tags: 函数命令元素列表数量数字整数次数
2条回答

如何使用sets来完成任务:

lst = [1,2,1,5,3,4,2,1,3,5,6]

def rep(the_list, rep):
  return [x for x in set(the_list) if the_list.count(x) == rep]

print(rep(lst, 2))  # -> [2, 3, 5]
  1. set(the_list)列表被转换为set,以确保每个唯一的元素只搜索一次。你知道吗

这里有一个使用计数器的替代解决方案

from collections import Counter

def count(list, k):
    tmp = Counter(list)
    return [x for x in tmp if tmp[x] == k]

相关问题 更多 >