不使用默认函数

时间:2015-09-05 15:50:42

标签: python arrays sorting

我正在阅读有关数组的内容,我想知道如何从右到左对数组中的元素进行排序。

例如:

n = 10
numbers = []
for i in range(1, n+1):
    numbers.append(i)
print(numbers)

如何使用循环和条件等基础工具显示从最后一个到第一个(10,9,8 ...)的组件?

除此之外:

    for i in range(-1, (-len(numbers) - 1), -1):
        print(numbers[i])

6 个答案:

答案 0 :(得分:2)

您没有对数组进行排序。您正在尝试构建具有特定排序的一个。您可以直接使用range执行此操作。可以使用三个参数rangestartstop调用step。这允许您构建范围10, 9, ...

Python 2:

numbers = range(10, 0, -1)
print numbers

Python 3:

numbers = list(range(10, 0, -1))
print(numbers)

输出

[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

答案 1 :(得分:1)

sortedreverse=True

一起使用

sorted(numbers, reverse=True)

或尝试list.sort方法

number.sort(reverse=True)

但在你的情况下,你可以使用反向索引

number[: : -1]

答案 2 :(得分:1)

如果您希望反向列表,可以这样做:

In [17]: [4,6,7][::-1]
Out[17]: [7, 6, 4]

答案 3 :(得分:1)

list(reversed([1,2]))
>> [2,1]

答案 4 :(得分:1)

有许多不同的算法来排序没有默认函数的数组。以下是其中一些列表:https://en.wikipedia.org/wiki/Sorting_algorithm。您可以使用排序算法对数组进行排序,然后使用reversed(list)将其反转。

答案 5 :(得分:1)

您可以使用range功能,例如

for i in range(n,0,-1):
    print(number[i])

如果您想按降序排列列表,则可以使用sort列表方法。

number.sort(reverse=True)