Python lis排序列表

2024-06-09 22:45:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个列表:

外显子启动外显子完成基因名(重复数百次)

我想按外显子开始排序

示例列表:

 ['8342758', '8344137', 'NM_001042682']
 ['85420368', '85421471', 'NM_032184']
 ['86363115', '86364485', 'NM_152890']
 ['89820771', '89822936', 'NM_015350']
 ['904123', '905900', 'NR_027693']
 ['91176416', '91179454', 'NM_201269']
 ['92418409', '92420740', 'NM_015237']
 ['93575521', '93577419', 'NR_034089']
 ['94114411', '94116006', 'NM_014597']
 ['99926918', '99928016', 'NM_017734']

此列表(打印在上面)已按以下代码排序:

^{pr2}$

然而,“排序”并不像我预期的那样有效。从列表中可以看到,904123小于89820771。因此,看起来“排序”并不是将数字作为一个整体进行比较,而是作为单个数字进行比较。在

我怎么解决这个问题?在


Tags: 代码示例列表排序基因数字nr整体
3条回答

将字符串转换为数字

sorted(triplets, key=lambda x: int(x[0]))

它将它们作为字符串排序,所以顺序是“字母顺序”。也就是说,它是逐个字符进行比较,而不是将它们作为标量值进行比较。在

也要这样做:

sorted_triplets = sorted(triplets, key=lambda x: int(x[0]))

它应该会起作用的。在

将exon_start转换为整数,字符串按字典顺序排序。在

相关问题 更多 >