python - 如何按用户定义的顺序对列表中的列表进行排序?

标签 python list python-2.7 sorting

我想按照列表中的优先顺序 (*,/,+,-) 对数学运算符列表(存储为字符串)进行排序。我的列表中有数千个列表。

例如

my_lists = [['*','+','-'],['-','*','*'],['+','/','-']]

应该变成:

new_list = [['*','+','-'],['*','*','-'],['/','+','-']]

有没有办法按照用户定义的顺序对列表中的列表进行排序?

最佳答案

你可以像这样用字典定义优先级

>>> priority = {'*': 0, '/': 1, '+': 2, '-': 3}

然后使用 priority 的值对各个列表进行排序,如下所示

>>> [sorted(item, key=priority.get) for item in my_lists]
[['*', '+', '-'], ['*', '*', '-'], ['/', '+', '-']]

关于python - 如何按用户定义的顺序对列表中的列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34721320/

相关文章:

python - 如何按降序对 Python 2.7 中的任何列表进行排序?

无法推到列表后面

python - 有没有更简单的方法来转换这些 python 对象

python - 如何过滤 jinja2 模板中的集合?

python - 在较长列表的每个第 n 个元素处将两个不同长度的列表组合成元组

python - 阻止来自 *.appspot.com 的请求并在 Google App Engine 中强制自定义域

python - int()参数必须是字符串,类似字节的对象或数字,而不是 'NoneType'

python - FBProphet 在增长 ='logistic' python 时给出错误

python - 使用Integrate.solve_ivp在Python中绘制轨道

python - 检查变量是否在python中定义的简单方法?