如何仅解析 Python 列表中的重复项?

例如,如果我有一个基因名称列表,并且我想创建一个仅包含重复基因的新列表,我该怎么做?


原始列表示例:


RGN

RBM10

ARAF

ZNF630

FTSJ1

SLC35A2

SLC35A2

SLC35A2

MAGIX

DGKK

XAGE1B

XAGE1B

SMC1A

FAM120C

CXorf49

CXorf49B

CHIC1

ABCB7

PBDC1

FGF16

ATP7A

CYLC1

TSPAN6

BTK

BTK

TCEAL4

TEX13A

FRMPD3

PRPS1

COL4A6

COL4A6

COL4A6

例如,SLC35A2, 将在新列表中,因为它重复了 3 次。


海绵宝宝撒
浏览 193回答 3
3回答

猛跑小猪

你可以这样做:listOfGenes = "RGN RBM10 ARAF ZNF630 FTSJ1 SLC35A2 SLC35A2 SLC35A2 MAGIX DGKK XAGE1B XAGE1B SMC1A FAM120C CXorf49 CXorf49B CHIC1 ABCB7 PBDC1 FGF16 ATP7A CYLC1 TSPAN6 BTK BTK TCEAL4 TEX13A FRMPD3 PRPS1 COL4A6 COL4A6 COL4A6".split(" ")genesOccurences = {}for gene in listOfGenes:    occurence = genesOccurences.get(gene, 0)    genesOccurences[gene] = occurence + 1print(genesOccurences) # will print a dictionary with every gene and how often it is occurringfilteredGeneList = [ key for key in genesOccurences if genesOccurences[key] > 1 ]print(filteredGeneList) # will print only those genes occurring > 1 times.

收到一只叮咚

时间复杂度 = O(n)空间复杂度 = O(n)代码:def get_duplicates(array):    seen = set([])    results = set([])    for element in array:        if element in seen:            results.add(element)        else:            seen.add(element)    return list(results)input_array = "RGN RBM10 ARAF ZNF630 FTSJ1 SLC35A2 SLC35A2 SLC35A2 MAGIX DGKK XAGE1B XAGE1B SMC1A FAM120C CXorf49 CXorf49B CHIC1 ABCB7 PBDC1 FGF16 ATP7A CYLC1 TSPAN6 BTK BTK TCEAL4 TEX13A FRMPD3 PRPS1 COL4A6 COL4A6 COL4A6"input_array = input_array.split()duplicates = get_duplicates(input_array)print(duplicates)输出:['COL4A6', 'SLC35A2', 'XAGE1B', 'BTK']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python