如何按python降序排序整数列表

时间:2014-08-19 00:56:31

标签: python list

我试图以不同的方式解决这个问题,但没有成功。我不断按升序排序,而不是在打印时降序。

ListB = [24, 13, -15, -36, 8, 22, 48, 25, 46, -9]
sorted(ListB, key=int, reverse=True)
print sorted(ListB)

6 个答案:

答案 0 :(得分:11)

试试这个,它会按降序排列列表(在这种情况下不需要指定键):

listB = [24, 13, -15, -36, 8, 22, 48, 25, 46, -9]
listB.sort(reverse=True) # listB gets modified

print listB
=> [48, 46, 25, 24, 22, 13, 8, -9, -15, -36]

或者,您可以创建新的排序列表:

listB = [24, 13, -15, -36, 8, 22, 48, 25, 46, -9]
listC = sorted(listB, reverse=True) # listB remains untouched

print listC
=> [48, 46, 25, 24, 22, 13, 8, -9, -15, -36]

答案 1 :(得分:10)

您正在打印按升序排序的列表:

print sorted(ListB)

如果您希望它下降,请将您的print语句放在上一行(您将其反转)

print sorted(ListB, key=int, reverse=True)

然后删除您的最终打印声明。

示例:

>>> ListB = [24, 13, -15, -36, 8, 22, 48, 25, 46, -9]
>>> print sorted(ListB, key=int, reverse=True)
[48, 46, 25, 24, 22, 13, 8, -9, -15, -36]

答案 2 :(得分:2)

ListB = [24, 13, -15, -36, 8, 22, 48, 25, 46, -9]

ListB = sorted(ListB, key=int, reverse=True)

print ListB

Sorted不会更改传递给它的变量。因此,如果您想对它们执行任何操作,则必须将已排序的输出存储到变量中。

答案 3 :(得分:0)

reversed(sorted(listb))

这创建了一个从48开始的可迭代 - > -36

答案 4 :(得分:0)

你应该将这两行代码组合在一起,而不是使用它。

print sorted(ListB, key=int, reverse=True)

结果:

[48, 46, 25, 24, 22, 13, 8, -9, -15, -36]

答案 5 :(得分:0)

在 Python 中,您可以按如下方式排序:

listA = [150, 120, 100, 165, 190, 145, 182, 175, 17]
print(sorted(listA))
print(sorted(listA, reverse=True))

这将是使用选择排序的实际实现:

# Traverse through all array elements
for i in range(len(listA)):

    # Find the minimum element in remaining
    # unsorted array
    min_idx = i
    for j in range(i + 1, len(listA)):
        if listA[min_idx] > listA[j]:
            min_idx = j

    # Swap the found minimum element with
    # the first element
    listA[i], listA[min_idx] = listA[min_idx], listA[i]

print(listA)

# Traverse through all array elements
for i in range(len(listA)):

    # Find the minimum element in remaining
    # unsorted array
    min_idx = i
    for j in range(i + 1, len(listA)):
        if listA[min_idx] < listA[j]:
            min_idx = j

    # Swap the found minimum element with
    # the first element
    listA[i], listA[min_idx] = listA[min_idx], listA[i]

print(listA)