有没有一种简单的方法可以按数字排序,然后用python中的氨基酸字母排序

时间:2017-11-07 00:20:11

标签: python sorting alphanumeric

是否有一种简单的方式按字母数字排序,但以数字为增量,然后在下一个数字处再次开始字母 是一个国会大厦字母跟随w /没有空格最多5位数字 python,氨基酸序列号?

在Python中,我尝试过:

sourceSets {
    main {
        resources.srcDirs = ['src/main/java/yourresourcesfolder']
    }
}

但我喜欢它:

result_list <- list()
for (i_url in 1:length(url_list)){
    url <- url_list[i_url]
    ...
    result_list[[i_url]] <- test
}

3 个答案:

答案 0 :(得分:1)

您可以使用以下类别:

amino_acids = ['D1', 'E1', 'S1', 'S4', 'S6', 'C1', 'S2', 'D2', 'C2', 'E2', 'W373']

sorted_acids = sorted(
    amino_acids,
    key=lambda acid: (int(acid[1:]), acid[0])
)

应该没问题Amino Acids只有一个字母。

答案 1 :(得分:1)

您可以使用python&#39; sorted()功能

Map<String, List<String>> params = new HashMap<>(); // Hash map for "ma" HashMap<String, String> maParams = new HashMap<>(); maParams.put("ma", "1"); Hash map for "mb" HashMap<String, String> mbParams= new HashMap<>(); mbParams.put("mb", "2"); // Table values List<String> values = new ArrayList<>(); values.add(String.valueOf(maParams)); values.add(String.valueOf(mbParams)); params.put("table", beacons); params.put("token", "access");

输出: sorted(sorted(l1), key = lambda value:value[:1], value[0])

答案 2 :(得分:0)

如果我的理解是正确的,氨基酸由单个字母表后跟一个数字表示,那么以下应该可以解决问题。

from natsort import natsort_keygen, ns
l1 = ['D1', 'E1', 'S1', 'S4', 'S6', 'C1', 'S2', 'D2', 'C2', 'E2', 'W373']
for k, v in enumerate(l1):
    l1[k] = v[1:] + v[0]
natsort_key1 = natsort_keygen(key=lambda y: y.lower())
l1.sort(key=natsort_key1)
for k, v in enumerate(l1):
    l1[k] = v[-1] + v[:-1]
l1

这会将第一个字符串排序到字符串的末尾,对其进行排序然后将其恢复,然后应该这样做。

同样,我对氨基酸知之甚少,第一个谷歌搜索结果表明只有一个字符后跟数字。我的答案是基于这个假设