Python 如何优化此重复序列排序?

Python 如何优化此重复序列排序?,python,python-3.x,sorting,sequence,Python,Python 3.x,Sorting,Sequence,我正在按一个dict值对字典列表进行排序,希望有一个排序序列,如1,2,3,1,2,3,3这就是我想到的: 输入: dicts = [{'name':'a', 'order':2}, {'name':'b', 'order':2}, {'name':'c', 'order':1}, {'name':'d', 'order':3}, {'name':'e', 'order':3}, {'name':'f', 'order':1}, {'name':'g', 'order':1}] [{'name

我正在按一个dict值对字典列表进行排序,希望有一个排序序列,如1,2,3,1,2,3,3这就是我想到的:

输入:

dicts = [{'name':'a', 'order':2}, {'name':'b', 'order':2}, {'name':'c', 'order':1}, {'name':'d', 'order':3}, {'name':'e', 'order':3}, {'name':'f', 'order':1}, {'name':'g', 'order':1}]
[{'name': 'c', 'order': 1}, {'name': 'a', 'order': 2}, {'name': 'd', 'order': 3}, {'name': 'f', 'order': 1}, {'name': 'b', 'order': 2}, {'name': 'e', 'order': 3}, {'name':'g', 'order': 1}]
功能:

dicts = [{'name':'a', 'order':2}, {'name':'b', 'order':2}, {'name':'c', 'order':1}, {'name':'d', 'order':3}, {'name':'e', 'order':3}, {'name':'f', 'order':1}, {'name':'g', 'order':1}]
[{'name': 'c', 'order': 1}, {'name': 'a', 'order': 2}, {'name': 'd', 'order': 3}, {'name': 'f', 'order': 1}, {'name': 'b', 'order': 2}, {'name': 'e', 'order': 3}, {'name':'g', 'order': 1}]
来自itertools导入groupby,zip\u
从输入导入列表开始
def seq_sort(输入:List[dict])->List[dict]:
新的顺序=[]
#命令命令
已排序=已排序(输入,键=lambda x:x['order'])
#把口述分组
组=[
[p代表v中的p]代表k,v代表groupby(
命令,
键=λx:x[“顺序”]
)
]
#按顺序放入新列表
#分组列表的长度可以不同
对于zip_最长(*组)中的组:
对于g组:
如果g不是无:
新增附录(g)
返回新的\u seq
打印(顺序排序(dicts))
输出:

dicts = [{'name':'a', 'order':2}, {'name':'b', 'order':2}, {'name':'c', 'order':1}, {'name':'d', 'order':3}, {'name':'e', 'order':3}, {'name':'f', 'order':1}, {'name':'g', 'order':1}]
[{'name': 'c', 'order': 1}, {'name': 'a', 'order': 2}, {'name': 'd', 'order': 3}, {'name': 'f', 'order': 1}, {'name': 'b', 'order': 2}, {'name': 'e', 'order': 3}, {'name':'g', 'order': 1}]

这是可行的,但我现在有点头脑模糊,觉得这不是最好的方法,我应该如何做得更好?

旁注:你为什么要学习Python 2?它的生命已经结束了两个月(在那之前的几年里都在使用生命支持)。@ShadowRanger我已经转换为Python3请从侧面查看
循环
函数。注意:你为什么要学习Python2?生命已经结束了两个月(在那之前的几年里都是依靠生命支持)。@ShadowRanger我已经转换成Python3。请从中查看
roundrobin
功能。