输入列表:
list = [(a, 6), (e, 3), (e, 4), (g, 0), (m, 1), (s, 2), (s, 5)]
我需要在元组中按第二个值接收元组的排序列表 但结果中的第二个值应该是前一个列表中元组的索引:
list1 = [[(g, 3), (m, 4), (s, 5), (e, 1), (e, 2), (s, 6), (a, 0)]]
然后以某种方式迭代从list1的1个元素开始将char附加到结果并进入下一个元组(next的索引是元组中的数字)并接收'message'字符串
答案 0 :(得分:3)
不是最漂亮的,但您可以使用enumerate
+ sorted
执行此操作。
>>> [(x[1][0], x[0]) for x in sorted(enumerate(lst), key=lambda x: x[1][-1])]
[('g', 3), ('m', 4), ('s', 5), ('e', 1), ('e', 2), ('s', 6), ('a', 0)]