我有一个包含这样的整数的列表(不按顺序):
list1 = [2,1,3]
我有第二个这样的列表:
list2 = ['Contig_1_Length_1000','Contig_2_Length_500','Contig_3_Length_400','Contig_4_Length_300','Contig_5_Length_200','Contig_6_Length_100']
这些列表来自 fasta 文件。列表 2 总是以“Contig_”开头,但可能并不总是以良好的排序顺序。我想返回一个这样的列表:
list3 = ['Contig_1_Length_1000','Contig_2_Length_500','Contig_3_Length_400']
list3 包含其编号仅出现在 list1 中的重叠群。
如何在python中做到这一点?
非常感谢你!
您可以从第二个列表中为O(n)
(线性)解决方案创建一个字典:
import re
list1 = [2,1,3]
list2 = ['Contig_1_Length_1000','Contig_2_Length_500','Contig_3_Length_400','Contig_4_Length_300','Contig_5_Length_200','Contig_6_Length_100']
new_result = {int(re.findall('(?<=^Contig_)\d+', i)[0]):i for i in list2}
final_result = [new_result[i] for i in list1]
输出:
['Contig_2_Length_500', 'Contig_1_Length_1000', 'Contig_3_Length_400']
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句