【发布时间】:2017-11-07 00:20:11
【问题描述】:
有没有一种简单的方法来按字母数字排序,但以数字递增,然后在下一个数字重新开始字母 是的,后跟大写字母,不带空格,最多为 5 位数字 python,氨基酸序列号?
在 Python 中我尝试过:
from natsort import natsort_keygen, ns
l1 = ['D1', 'E1', 'S1', 'S4', 'S6', 'C1', 'S2', 'D2', 'C2', 'E2', 'W373']
natsort_key1 = natsort_keygen(key=lambda y: y.lower())
l1.sort(key=natsort_key1)
l1
# Gives:
['C1', 'C2', 'D1', 'D2', 'E1', 'E2', 'S1', 'S2', 'S4', 'S6', 'W373']
但我喜欢它:
['C1', 'D1', 'E1', 'S1', 'C2','D2', 'E2', 'S2', 'S4', 'S6', 'W373']
【问题讨论】:
-
氨基酸可以有两个字母吗?
-
@GiantsLoveDeathMetal 请不要讽刺,不要让自己回答自己的问题。
-
@8protons 在这种情况下,恕我直言,不删除他的评论并自己回答是合法的。我不知道只有一个字母,原始问题中缺少信息,其他人可能也不知道,这对问题来说有点关键。
-
@bgse 好点,也许我推断他的两个 cmets 是错误的,鉴于两者之间有 7 分钟的间隔,我认为你是对的。对于可能的错误假设,我向 GiantsLoveDeathMetal 道歉。但是-我仍然认为第一条评论是不必要的,简单地说,“氨基酸不能有两个字母”就足够了。无论如何,评论是无关紧要的。 C1、C2、E1、E2 等是关于氨基酸蛋白结合区域、末端等的合法名称。
-
我同意你们俩。
标签: python sorting alphanumeric