如何使用for和while循环使用python按字母顺序排序?

时间:2015-11-30 12:06:17

标签: python for-loop while-loop

我还在尝试学习python。 我已经创建了一个水果列表,如下所示

fruitList = ["pear","apple","strawberry","banana","orange"]

我想使用for循环和while循环按字母顺序打印出来。

   fruitList.sort()

因为python有这个函数叫sort()因此,我能够排序。 但是如果我不想使用sort函数呢?

但是,现在,我已经讨论了如何使用while循环进行排序? 谁能告诉我怎么能这样做? 这是我尝试过的,使用len()

for fruit in fruitList:
    while (len(fruitList[0]) > len(fruit[0])):
            fruit += 1
            print fruit
            continue

运行此程序时没有打印任何内容。 在while循环中,我想与index [0]进行比较,还是可以使用sort函数?

5 个答案:

答案 0 :(得分:2)

你可以这样做:

TrustManager

和while:

for f in sorted(fruitList):
    print(f)

但我的意思是,使用“while”是一个坏主意

P.S。 sort()不是函数,它是一个列表方法

答案 1 :(得分:1)

排序rutines中的构建不需要使用for或While

如果您想学习/ while,请查看一些教程或其他内容。

https://wiki.python.org/moin/ForLoop

要对列表进行排序,请执行以下操作

fruitList = ["pear","apple","strawberry","banana","orange"]
print sorted(fruitList)
print fruitList
fruitList.sort()
print fruitList

输出:

['apple', 'banana', 'orange', 'pear', 'strawberry']
['pear', 'apple', 'strawberry', 'banana', 'orange']
['apple', 'banana', 'orange', 'pear', 'strawberry']

答案 2 :(得分:0)

首先你应该选择一种排序算法,IMO最容易理解的算法之一是Bubble sort(但也是最低效的算法之一!)

swaped = True #Just to enter the first time
while swaped:
    swaped = False
    for i in range(len(fruitList)-1):
        if fruitList[i] > fruitList[i+1]:
            aux = fruitList[i]
            fruitList[i] = fruitList[i+1]
            fruitList[i+1] = aux
            swaped = True
print(fruitList)

答案 3 :(得分:0)

好的,首先你要按照字母顺序排序,然后为什么要考虑列表中单词的长度而不是他们的名字呢?

此外,您的代码中存在一些错误,我不明白您要尝试做什么。

for fruit in fruitList:
    while (len(fruitList[0]) > len(fruit[0])):
        fruit += 1
        print fruit
        continue

首先,len(fruitList[0])是列表中第一个项目的长度(假设它是pear)。

在第一次迭代中,fruit将是fruitList[0]pear

当你正在做len(fruitList[0]) > len(fruit[0])时你正在做(在第一次迭代中)len("pear") > len('p'),只要你没有空字符串,它就是'真'...其中case fruit[0]会抛出错误。 现在,你为什么要这样做?你想做什么?

无论如何,让我们继续前进,因为上面的条件是'True',然后下一行代码是fruit +=1但是fruit是一个字符串而'1'是一个int,所以你'重新尝试添加一个引发错误的'str'+'int'。

Sooooo ....你的代码没有运行,它会抛出一个错误,如果你说你的代码没有打印任何东西,那么你在你的chunk中得到'False',所以代码你发布的并不是你在计算机上运行的完全相同的东西,我是对的吗?

最后,要回答您的问题,要按字母顺序订购列表,您必须检查字母。

首先将列表中的第一项设置为第一项。 然后检查列表中的第二项并与之前的项目进行比较,如果第二项之前,则移动它。 然后检查下一个项目,与之前的项目进行比较,如果之前的项目,则比较之前的项目并相应地移动...重复,直到您检查列表中的每个项目。 --->或者如上所述使用冒泡排序(只读这个答案)

答案 4 :(得分:-1)

现在你遍历列表,对于每个水果,你一次又一次地对列表进行排序。你不需要这个。只是做

print sorted(fruitList)