【发布时间】:2016-06-28 20:34:58
【问题描述】:
我有一个关于如何在 python 2.7 中获得以下输出的问题。
>> bubble(['abe','Ada','bak','bAr'], False)
['Ada', 'bak', 'bAr', 'abe']
['bak', 'bAr', 'Ada', 'abe']
['bAr', 'bak', 'Ada', 'abe']
>> bubble(['Adm','abe','bAr','bak'], False)
['Ada','bAr','bak','abe']
['bArt','bak','Ada','abe']
函数的输入如下。 字符串列表 (L) 和布尔值,表示字母升序 (asc=True) 或字母降序 (asc=False)。在这两种情况下,它都是按字典顺序排列的。我想在每次通过时打印出列表的状态。
def bubble(L, asc):
n = len(L)
if asc == False:
for i in range(1,n):
for ii in range(n-i):
if L[ii].upper()<L[ii+1].upper():
tmp=L[ii]
L[ii]=L[ii+1]
L[ii+1]=tmp
print L
if asc == True:
for i in range(1,n):
for ii in range(n-i):
if L[ii].upper()>L[ii+1].upper():
tmp=L[ii]
L[ii]=L[ii+1]
L[ii+1]=tmp
print L
此外,我可以将当前访问列表项的方式替换为 i-1 和 i 而不是 i,i+1 吗?
【问题讨论】:
-
您的意思是替换您访问列表项的方式(访问为
i-1,i而不是i,i+1)? -
是的。这就是我想做的,但我不知道如何去做。我尝试了不同的方法,但似乎并没有遍历整个列表。
标签: list python-2.7 sorting for-loop bubble-sort