我有以下清单:
lst = ['AAAAAABB', 'AAAAAABA', 'AAAAAAAB', 'AAAAABAA', 'AAAAABAB', 'AAAAABBA']
我明白了:
lst = ['AAAAAAAB', 'AAAAAABA', 'AAAAAABB', 'AAAAABAA', 'AAAAABAB', 'AAAAABBA']
但我想要这样的东西:
lst = ['AAAAAAAB', 'AAAAAABA', 'AAAAABAA', 'AAAAAABB', 'AAAAABAB', 'AAAAABBA']
这意味着,考虑到每个列表项中A和B的序列,我想用Python对我的列表进行排序。你知道吗
实际上,我希望所有7*A的组合都应该先出现。在那之后应该有一个以上B的组合
Edit:我总是忘记这个注释,但它确实很重要,不要用“list,dict”等名称调用变量,这些名称对python有特殊的意义
编辑:按“b”的数量排序
您可以对列表进行排序:
结果是:
我想我明白你的意思了!如果我错了,请纠正我。基本上取决于
B
,不是吗?B出现的次数越多或距离字符串的开头越近,它出现在最终答案列表中的距离就越远,不是吗?你知道吗所以,我就是这么做的。你知道吗
B
的频率顺序排序。你知道吗lst
,您将清楚地看到这个问题。你知道吗所以现在我需要
sort
(正常的字典排序)每一组具有相同频率B
的字符串。我用groupby
来做这个。请参阅groupby的用法,并对每个这样的组进行排序,并将它们附加到最终答案中。你知道吗输出:
相关问题 更多 >
编程相关推荐