Python 使用最后一个元素对元组列表进行排序

Python 使用最后一个元素对元组列表进行排序,python,python-2.7,Python,Python 2.7,需要使用最后一个元素对给定元组列表进行排序 def sort_last(tuples): sorted_list = [] i = 0 i2 = 1 while True: if len(tuples) == 2: if tuples[i][-1] < tuples[i2][-1]: sorted_list.append(tuples[i]) sorted

需要使用最后一个元素对给定元组列表进行排序

def sort_last(tuples):
    sorted_list = []
    i = 0
    i2 = 1
    while True:
        if len(tuples) == 2:
            if tuples[i][-1] < tuples[i2][-1]:
                sorted_list.append(tuples[i])
                sorted_list.append(tuples[i2])
                break
            else:
                sorted_list.append(tuples[i2])
                sorted_list.append(tuples[i])
                break
        elif tuples[i][-1] < tuples[i2][-1]:
            i2 += 1
            print 1
        elif i == i2:
            i2 += 1
        elif i2 == len(tuples)-1:
            if tuples[i][-1] < tuples[i2][-1]:
                sorted_list.append(tuples[i])
                del tuples[i]
                i = 0
                i2 = 1
            else:
                sorted_list.append(tuples[i2])
                del tuples[i2]
                i = 0
                i2 = 1
        elif len(tuples) <= 1:
            return tuples
        else:
            i += 1
    return sorted_list
def sort_last(元组):
已排序的_列表=[]
i=0
i2=1
尽管如此:
如果len(元组)==2:
如果元组[i][1]<元组[i2][1]:
排序的\u list.append(元组[i])
排序的\u list.append(元组[i2])
打破
其他:
排序的\u list.append(元组[i2])
排序的\u list.append(元组[i])
打破
elif元组[i][1]<元组[i2][1]:
i2+=1
打印1
elif i==i2:
i2+=1
elif i2==len(元组)-1:
如果元组[i][1]<元组[i2][1]:
排序的\u list.append(元组[i])
德尔元组[i]
i=0
i2=1
其他:
排序的\u list.append(元组[i2])
del-tuples[i2]
i=0
i2=1

elif len(元组)使用最后一个元素排序意味着什么?为什么不直接使用
排序的
?这个问题还有什么我不明白的吗?用最后一个元素排序是什么意思?为什么不直接使用
sorted
?这个问题还有更多我不明白的地方吗?请添加对代码的解释。不需要描述就可以理解的人也可以自己编写代码。请添加对代码的解释。不需要描述就能理解的人也可以自己编写代码。
def sort_last(tuples):
    return sorted(tuples, key=lambda i: i[-1])

>>> sort_last([(1, 3), (3, 2), (2, 1)])
[(2, 1), (3, 2), (1, 3)]
>>> sort_last([(2, 3), (1, 2), (3, 1)])
[(3, 1), (1, 2), (2, 3)]
a=([(1, 3), (3, 2), (2, 1)])
def foo(elem):
    return elem[-1]
a.sort(key=foo)
print(a)