【发布时间】:2019-10-31 18:23:12
【问题描述】:
基本上我不确定是否有任何可能的方法可以将此代码转换为列表理解。 list1 和 list3 是从基因信息中提取的列表列表。所以基本上x[2]是一个gene_id,y[0]也是一个gene_id。 y[1] 是基因名称。基本上我想以列表 5 结尾,这是一个列表列表,我可以循环写入 tsv。
list2 = []
list4 = []
list5 = []
for x in list1:
for y in list3:
if x[2] == y[0]:
list2.append(y[1])
list4.append(x[2])
list4.append(",".join(list2))
list5.append(list4)
list2 = []
list4 = []
对于 list1 中的列表,x 为 [9606,HEX1M1,9606.ENSP00000328773]。
然后对于所有在 list3 中具有 y[0] == x[2] 的 y,例如,[9606.ENSP00000395733,ZNF737-001,Ensembl_HGNC_trans_name Ensembl_Vega_transcript] 和 [9606.ENSP00000395733,ZNF737-002,Ensembl_HGNC_trans_name Ensembl_HGNC_trans_name Ensembl ]
然后我们想在迭代之后为列表 5 获取 [["9606.ENSP00000395733", "ZNF737-001, ZNF737-002,HEX1M1"]]。
【问题讨论】:
-
它是什么语言?蟒蛇?
-
你能描述一下这是做什么的吗?一个或多个示例会有所帮助。
-
是python@PM77-1
-
使用Edit 为您的问题添加详细信息。
-
老实说,对于这有多复杂,我会避免列表理解。每当您觉得自己在死记硬背逻辑时,为了可维护性而将其保留为 for 循环是值得的
标签: python python-3.x for-loop list-comprehension