在 Python 中根据输入列表按字母顺序排列名称列表,而无法使用任何排序功能

问题描述 投票:0回答:1

我没有太多的编程经验,但我一直在尝试让一个程序从多个输入中运行,它可以按字母顺序排列列表并上下打印它,而不显示它所执行的任何步骤得出结论。并且不能使用其中的任何排序功能。

def orgianlAlphabeticalList(): 
    for amountInList in range(len(allInputsInLists)-1, 0, -1):
        for i in range(amountInList):
            if allInputsInLists[i] > allInputsInLists[i+1]:
                allInputsInLists[i], allInputsInLists[i+1] = allInputsInLists[i+1], allInputsInLists[i]
                print(allInputsInLists)

这是我按字母顺序排列列表的功能我没有很多编程经验

python list sorting alphabetical
1个回答
0
投票

你的功能没问题。您所做的是一种冒泡排序实现,需要修复。

它是一种时间复杂度为 O(N ^ 2) 的排序方法。这不是最好的。但事实上,你能想出这个,就很好了。

def orgianlAlphabeticalList(allInputsInLists):
    for amountInList in range(len(allInputsInLists) - 1, 0, -1):
        for i in range(amountInList):
            if allInputsInLists[i] > allInputsInLists[i + 1]:
                allInputsInLists[i], allInputsInLists[i + 1] = allInputsInLists[i + 1], allInputsInLists[i]
    return allInputsInLists


sample_list = ['banana', 'apple', 'orange', 'grape', 'banana', 'apple', 'orange', 'grape']
sorted_list = orgianlAlphabeticalList(sample_list)
print(sorted_list)

打印

['苹果', '苹果', '香蕉', '香蕉', '葡萄', '葡萄', '橙子', ‘橙色’]

注意

  • 有一种方法可以优化这个方法。
  • 如果在你的第二个循环中,它永远不会进入这个
    if allInputsInLists[i] > allInputsInLists[i+1]:
    怎么办?
© www.soinside.com 2019 - 2024. All rights reserved.