为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

海绵宝宝撒 2021-08-14 15:37:48
例如,如果我有一个基因名称列表,并且我想创建一个仅包含重复基因的新列表,我该怎么做?原始列表示例:RGNRBM10ARAFZNF630FTSJ1SLC35A2SLC35A2SLC35A2MAGIXDGKKXAGE1BXAGE1BSMC1AFAM120CCXorf49CXorf49BCHIC1ABCB7PBDC1FGF16ATP7ACYLC1TSPAN6BTKBTKTCEAL4TEX13AFRMPD3PRPS1COL4A6COL4A6COL4A6例如,SLC35A2, 将在新列表中,因为它重复了 3 次。
查看完整描述

3 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

你可以这样做:


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 + 1


print(genesOccurences) # will print a dictionary with every gene and how often it is occurring


filteredGeneList = [ key for key in genesOccurences if genesOccurences[key] > 1 ]

print(filteredGeneList) # will print only those genes occurring > 1 times.


查看完整回答
反对 回复 2021-08-14
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

时间复杂度 = 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']


查看完整回答
反对 回复 2021-08-14
  • 3 回答
  • 0 关注
  • 192 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号