我还在尝试学习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函数?
答案 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)