【发布时间】:2016-01-11 13:45:13
【问题描述】:
我想按优先顺序 (*,/,+,-) 对数学运算符的元组列表(存储为字符串)及其索引进行排序,同时保留它们的原始索引。我的列表中有数千个元组列表。
例如
my_lists = [[(0,'*'),(1,'+'),(2,'-')],[(0,'-'),(1,'*'),(2,'*')],[(0,'+'),(1,'/'),(2,'-')]]
应该变成:
new_list = [[(0,'*'),(1,'+'),(2,'-')],[(1,'*'),(2,'*'),(0,'-')],[(1,'/'),(0,'+'),(2,'-')]]
我尝试使用“排序”内置函数并将优先级存储在字典中。
priority = {'*': 0, '/': 1, '+': 2, '-': 3}
new_list = [sorted(item, key = priority.get) for item in my_lists]
这会产生相同的原始列表。
如何在对元组列表进行排序时仅访问元组的运算符部分?
【问题讨论】:
-
你尝试了什么?展示你的方法,其他人可能会帮助你完成它,但 StackOverflow 不是编码服务......
标签: python-2.7 sorting tuples