白板的微信
您可以使用set ;)在这里,您有一个文件列表的最小示例,并在它出现2次时显示:files = ['10.gif', '8.gif', '0.gif', '0.doc', '0.gif', '0.gif', '0.tmp', '0.doc', '0.gif']file_set = set(files)files_freq = [0]*len(file_set)for n,file in enumerate(file_set): files_freq[n] = files.count(file)sorted_list = [f for n,f in sorted(zip(files_freq, file_set), key=lambda x: x[0], reverse=True) if n >= 2]print(sorted_list)输出将为:['0.gif', '0.doc']将仅将列表筛选为每个文件的唯一实例,循环将计算每个文件的计数。set之后,幽灵般的列表理解是诀窍![f for n,f in sorted(zip(files_freq, file_set), key=lambda x: x[0], reverse=True) if n >= 2]这将创建一个仅包含出现2次或更多次的文件的列表,然后该部分强制函数使用第一个 from 进行排序,并按后代顺序对列表进行排序,显示之前的最高频率。keysortedfiles_freqzip(files_freq, file_set)reverse