Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何调用为不同子组的列表组编写的函数_Python_List_Function - Fatal编程技术网

Python 如何调用为不同子组的列表组编写的函数

Python 如何调用为不同子组的列表组编写的函数,python,list,function,Python,List,Function,如何使用仅包含3个列表的较小组(ARN、CAL1、DRD45)调用我的函数?在这种情况下,输出如下所示: ABCC = ['TRIM29', 'IGL@', 'DOCK6', 'SVEP1', 'S100A11', 'EPHA2', 'KLHL7', 'ANXA3', 'NAB1', 'CELF2', 'EDNRB', 'PLAGL1', 'IL6ST', 'S100A8', 'CKLF', 'TIPARP', 'CDH3', 'MAP3K8', 'LYST', 'LEPR', 'FHL2',

如何使用仅包含3个列表的较小组(
ARN、CAL1、DRD45
)调用我的函数?在这种情况下,输出如下所示:

ABCC = ['TRIM29', 'IGL@', 'DOCK6', 'SVEP1', 'S100A11', 'EPHA2', 'KLHL7', 'ANXA3', 'NAB1', 'CELF2', 'EDNRB', 'PLAGL1', 'IL6ST', 'S100A8', 'CKLF', 'TIPARP', 'CDH3', 'MAP3K8', 'LYST', 'LEPR', 'FHL2', 'ARL4C', 'IL1RN', 'ESR1', 'CD93', 'ATP2B4', 'KAT2B', 'ELOVL5', 'SCD', 'SPTBN1', 'AKAP13', 'LDLR', 'ADRB2', 'LTBP4', 'TGM2', 'TIMP3', 'RAN', 'LAMA3', 'ASPH', 'ID4', 'STX11', 'CNN2', 'EGR1']

ACC = ['GULP1', 'PREPL', 'FHL1', 'METTL7A', 'TRIM13', 'YPEL5', 'PTEN', 'FAM190B', 'GSN', 'UBL3', 'PTGER3', 'COBLL1', 'EPB41L3', 'KLF4', 'BCL2L2', 'CYLD', 'SLK', 'ENSA', 'SKAP2', 'NR3C2', 'MAF', 'NDEL1', 'EZR', 'PCDH9', 'KIAA0494', 'CITED2', 'MGEA5', 'RUFY3', 'ALDH3A2', 'N4BP2L2', 'EPS15', 'TSPAN5', 'SNRPN', 'SSBP2', 'ELOVL5', 'C5orf4', 'FOXN3', 'ABCA5', 'SEC62', 'PELI1', 'MYCBP2', 'USP15', 'TACC1', 'SHMT1', 'RNF103', 'CDC14B', 'SYNE1', 'NDN', 'PHKB', 'EIF1', 'TROVE2', 'MBD4', 'GAB1']

BEC1 = ['LMNA', 'NHP2L1', 'IDS', 'ATP6V0B', 'ENSA', 'TBCB', 'NDUFA13', 'TOLLIP', 'PLEKHB2', 'MBOAT7', 'C16orf13', 'PGAM1', 'MIF', 'ACTR1A', 'OAZ1', 'GNAS', 'ARF1', 'MAPKAPK3', 'LCMT1', 'ATP6V1D', 'FLOT1', 'PRR13', 'COX5B', 'PGP', 'CYB561', 'CNIH4', 'COX6B1', 'NDUFB2', 'PFDN2', 'GPR172A', 'RTN4', 'GAPDH', 'MAPK13', 'FKBP8', 'PTGER3', 'BSCL2', 'TUBG1', 'FAM162A', 'GDI1', 'SPTLC2', 'YWHAZ', 'BCAP31', 'OSBPL1A', 'ATP6AP1', 'CALM1', 'PEX16', 'MYCBP2']

ARN = ['NCAM1', 'SLC11A2', 'RPL35A', 'PDLIM5', 'RPL31', 'NFIB', 'GYG2', 'IGHG1', 'NAAA']

CAL1 =  ['CAL1', 'ELF4', 'C5orf4', 'BMP6', 'FLT1', 'UBE2B', 'ALOX5AP', 'FGL2', 'ATP8A1', 'CAP1', 'SLIT3', 'MCAM', 'AKAP12', 'PSMB3', 'NFKBIA', 'SIRPA', 'NDEL1', 'EPM2A', 'RAB11FIP1']

DRD45 = ['PDK4', 'MAOB', 'DPYSL3', 'FNDC3B', 'GNB4', 'DCBLD2', 'ASPA', 'ATOH8', 'LHFPL2', 'ENTPD1', 'WSB1', 'AEBP1', 'C2orf40', 'RSAD2', 'LSAMP', 'MS4A7', 'TGFB1I1', 'PALLD', 'CTHRC1', 'COL5A1', 'DTNA', 'ATP2A2', 'EBF1', 'QKI', 'FBN1', 'GAS1', 'ID3', 'ZBTB20', 'SULF1']

lists = ([("ABCC", ABCC), ("ACC", ACC), ("BEC1", BEC1), ("ARN", ARN), ("CAL1", CAL1), ("DRD45", DRD45)])

def sort_by_matches(ref, lists):
    reference = set(ref)
    lists = sorted([[len(reference.intersection(set(l))), name, l] for name, l in lists], key=lambda x: (x[0], -len(x[2])), reverse=True)
    for matches, name, a_list in lists:
        print("Matches {} in {}".format(matches, name))

sort_by_matches(ACC, lists)
本质上,我希望能够设计出任何包含列表随机组合的组

Matches 2 in CAL1
Matches 0 in ARN
Matches 0 in DRD45
输出:

sort_by_matches(ACC, [(k,v) for k,v in lists if k in ['ARN', 'CAL1', 'DRD45']])

您的意思是,您希望列表中的3个元素组合
列表
?如果这就是您的意思,那么您可以使用来自
itertools
模块的
组合。
Matches 2 in CAL1
Matches 0 in ARN
Matches 0 in DRD45