【发布时间】:2021-06-25 14:15:54
【问题描述】:
我有一个清单
listA = [150, 120, 100, 165, 190, 145, 182, 175, 17]
我需要它按升序和降序排序(选择排序),像这样
Ascending
[17, 100, 120, 145, 150, 165, 175, 190]
Descending
[190, 175, 165, 150, 145, 120,100, 17]
我已经看到并尝试了几次,但仍然失败。大多数情况下都有这种解决方法
for i in range(len(listA)-1):
for i in range(len(listA)-1):
if (listA[i]>listA[i+1]):
listA[i],listA[i+1]=listA[i+1],listA[i]
但这只是可以做升序/降序(其中之一),还有其他方法可以在同一个程序中获取升序和降序数据吗?
【问题讨论】:
-
为什么不用
sorted内置函数呢?无论哪种方式,您都必须运行它两次,一次用于上升,一次用于下降。您可以将它们发送到新列表。 -
我见过 sorted build-in,但是这个任务应该用 if else 语句来完成,你能给我代码示例或参考,我不是很擅长编码吗?
-
查看副本,其中有些方法不使用内置排序
-
使用
ascending=True变量,并在两个循环中检查:如果为真,执行循环中的逻辑,如果为假,则执行相反的if listA[i] < listA[i + 1]:
标签: python python-3.x sorting selection-sort