У меня есть 2 больших списка списков, как эти 2 примера (большой и маленький):
big = [['chr1', 'ENSEMBL', 'exon', '12595', '12721', '.', '+', '.', 'gene_id', '"ENSG00000223972.4";', 'transcript_id', '"ENST00000518655.2";', 'gene_type', '"pseudogene";', 'gene_status', '"KNOWN";', 'gene_name', '"DDX11L1";'], ['chr1', 'ENSEMBL', 'exon', '13403', '13655', '.', '+', '.', 'gene_id', '"ENSG00000223972.4";', 'transcript_id', '"ENST00000518655.2";', 'gene_type', '"pseudogene";', 'gene_status', '"KNOWN";', 'gene_name', '"ACAD9";']]
small = [['ACAD9', 'ENSG00000177646', '372', '503', '0.0010154314', '0.0081838994', '0.4251428571', 'YES\n'], ['ACIN1', 'ENSG00000100813', '167', '647', '8.59E-33', '1.80E-31', '0.2051597052', 'YES\n']]
Я хочу составить список списков из big
и small
. на самом деле, если 1-й элемент в inner list
из small
равен 18th item
в inner list
из big
, я хочу создать новый list of lists
, в котором inner list
будет иметь 1st and 2nd
предметов inner list
от small
и 1st, 2nd, 3rd, 4th, 5th and 18th
предметов inner list
от big
.
вот ожидаемый результат:
ожидаемый результат:
out = [['ACAD9', 'ENSG00000177646', 'chr1', 'ENSEMBL', 'exon', '13403', '13655', '"ACAD9";']]
для этой цели я написал следующий код, но он не возвращает ожидаемый результат. ты знаешь как это исправить?
final = []
for i in range(0, len(eg)):
for j in range(0, len(gt)):
gtf_row = gt[j]
esse_gene_row = eg[i]
gtf_column = gtf_row.split()
esse_gene_column = esse_gene_row.split()
gtf_symbol = gtf_columns[17]
esse_gene_symbol = esse_gene_columns[0]
if gtf_symbol == esse_gene_symbol:
final.append(gt(j))