如何自定义列表的排序?

2024-09-28 01:29:41 发布

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

请列出:

list = ['UUU', 'UCU', 'UAU', 'UGU', 'AAC', 'AAG', 'AGC', 'GGG']

考虑到A=1,G=2,C=3,U=4,我想对它们进行排序

如何在python或linux/bash shell中使用or或sort实现这一点

当我使用或排序时,C排在G之前。如何解决这个问题


Tags: orbash排序linuxshellsortuuulist
2条回答

这将是python的^{}的一个很好的使用,它对于这类事情非常有效:

l = ['UUU', 'UCU', 'UAU', 'UGU', 'AAC', 'AAG', 'AGC', 'GGG']

trans = str.maketrans({'A':'1', 'G':'2', 'C':'3', 'U':'4'})

sorted(l, key=lambda x: x.translate(trans))

# ['AAG', 'AAC', 'AGC', 'GGG', 'UAU', 'UGU', 'UCU', 'UUU']

这应该起作用:

def transfomer_fn(s):
  tmap = {'A': '1', G: '2', C: '3', U:'4'}
  res = ''
  for x in s:
    res += tmap[x]
  return res

sorted_list = sorted(list, key=lambda x: transformer_fn(x))

相关问题 更多 >

    热门问题