【问题标题】:How to selection sort a tuple in a list so that it sort the tuple in reverse alphabetical order without the use of sorted function [closed]如何选择对列表中的元组进行排序,以便在不使用排序函数的情况下按字母倒序对元组进行排序[关闭]
【发布时间】:2020-03-30 19:44:34
【问题描述】:

我在手动对元组进行排序时遇到问题,可以说是在不使用 sorted() 函数的情况下按字母倒序排序 到目前为止,我已经这样做了,请随时纠正我

names = [ ("Yoda", 0.455), ("Abbie", 0.66), ("Gigi", 0.5), ("Xena", 0.12), ("Champ", 0.3) ] 


def sorting_backward(names):
    for i in range(len(names)):
        min = i
        for j in range(i-1,len(names)):
            if names[j] < names[min]:
                min = j
    return names

所以我希望输出是:Yoda 西娜 吉吉 冠军

我想避免使用 sorted() 函数的原因是我想看看它是否可能

【问题讨论】:

  • 我不熟悉这种排序方法。您想在这里实现什么目标?
  • 我正在尝试对其进行排序,以便每个元组中的第一个字符串按字母顺序反向排序
  • 你的函数没有做任何事情。请澄清您要达到的目标。你的预期结果是什么?为什么要避免排序?当你实际上有一个列表并且你的代码不关心元素类型时,为什么你说你想要对“元组”进行排序?

标签: python python-3.x sorting selection-sort


【解决方案1】:

这会将它从最大值排序到最小值

names = [ ("Yoda", 0.455), ("Abbie", 0.66), ("Gigi", 0.5), ("Xena", 0.12), ("Champ", 0.3)]
sort_list = []
while names:
    largest = max(names, key=lambda x: x[0])
    print (largest)
    sort_list.append(largest)
    names.pop(names.index(largest))

print(sort_list)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 2022-11-25
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 2021-11-02
    相关资源
    最近更新 更多