Python 为什么这不是对列表进行排序?

Python 为什么这不是对列表进行排序?,python,list,sorting,Python,List,Sorting,我想按升序对列表排序。请帮忙 A = [7,8,6,4,2,9] n = len(A) def sort (A, n): for i in range (1, n): for j in range (1, n-1): if A[j]>A[j+1]: t = A[j] A[j] = A[j+1] A[j+1] = t print (*A) 您需要调

我想按升序对列表排序。请帮忙

A = [7,8,6,4,2,9]
n = len(A)
def sort (A, n):
    for i in range (1, n):
        for j in range (1, n-1):
            if A[j]>A[j+1]:
                t = A[j]
                A[j] = A[j+1]
                A[j+1] = t
print (*A)

您需要调用sort函数来执行它。 见以下代码:

def sort (A, n):
    for i in range (0, n):
        for j in range (0, n-1):
            if A[j]>A[j+1]:
                t = A[j]
                A[j] = A[j+1]
                A[j+1] = t
A = [7,8,6,4,2,9]
n = len(A)
sort(A,n)
print (*A)
A = [7,8,6,4,2,9]
n = len(A)
def sort (A, n):
    for i in range (0, n):
        for j in range (0, n-1):
            if A[j]>A[j+1]:
                t = A[j]
                A[j] = A[j+1]
                A[j+1] = t

sort(A,n)
print (*A)

您正在从1运行循环,但这两个循环都应该从0运行。

您可以使用排序功能执行此操作

A = [7,8,6,4,2,9]
print(A)
A.sort()
print(A)
结果:

[7, 8, 6, 4, 2, 9]
[2, 4, 6, 7, 8, 9]
使用“0”作为开始,而不是1,并调用排序函数。您将得到如下输出

2 4 6 7 8 9
请尝试以下代码:

def sort (A, n):
    for i in range (0, n):
        for j in range (0, n-1):
            if A[j]>A[j+1]:
                t = A[j]
                A[j] = A[j+1]
                A[j+1] = t
A = [7,8,6,4,2,9]
n = len(A)
sort(A,n)
print (*A)
A = [7,8,6,4,2,9]
n = len(A)
def sort (A, n):
    for i in range (0, n):
        for j in range (0, n-1):
            if A[j]>A[j+1]:
                t = A[j]
                A[j] = A[j+1]
                A[j+1] = t

sort(A,n)
print (*A)

您没有调用已定义的排序函数,因此我已将其删除,如果要保留它,则必须在打印排序列表之前调用它。请尝试以下代码:

A = [7,8,6,4,2,9]
n = len(A)
for i in range (n):
    for j in range (i+1, n):
        if A[i] > A[j]:
            t = A[i]
            A[i] = A[j]
            A[j] = t
print (*A)
结果:

2 4 6 7 8 9
分析

循环第一次–第一次迭代:范围内的0(0,6) 这个条件是正确的。因此,它进入第二个for循环

嵌套For循环–第一次迭代:用于范围(0+1,6)中的1 情况属实。因此,它进入If语句

如果(A[0]>A[1])=如果(7>8)–表示条件为假。所以,它退出If块,j值增加1

嵌套For循环–第二次迭代:范围(1,6)中的2–条件为真

if(7 > 6) – Condition is True
    temp = 7
    A[i] = 6
    A[j] = 7
现在列表=687429。接下来,j增加1


对嵌套和main for循环中的其余迭代执行相同的操作。

首先,您没有调用排序函数。你需要调用排序函数。当你拥有内置功能时,为什么要编写代码-->>A.sort()@JuhilSomaiya我想他正在学习编程。因此,他试图编写排序函数。如果他直接使用内置函数,那么他将不会学习基础知识。还要添加一些解释。