HJ101 输入整型数组和排序标识,对其元素按照升序或降序

描述

输入整型数组和排序标识,对其元素按照升序或降序进行排序

数据范围: 1≤𝑛≤1000 1≤n≤1000  ,元素大小满足 0≤𝑣𝑎𝑙≤100000 0≤val≤100000 

输入描述:

第一行输入数组元素个数
第二行输入待排序的数组,每个数用空格隔开
第三行输入一个整数0或1。0代表升序排序,1代表降序排序

输出描述:

输出排好序的数字

示例1

输入:

8
1 2 4 9 3 55 64 25
0

输出:

1 2 3 4 9 25 55 64

示例2

输入:

5
1 2 3 4 5
1

输出:

5 4 3 2 1
import sys
N=int(input())
arr = input().split(' ')
m = int(input())
b_arr=[]
for item in arr:
    a = int(item)
    b_arr.append(a)
new_arr = sorted(b_arr)
def arr_print(arr):
    for item in arr:
        print(item,end=' ')  
if m == 0:
    arr_print(new_arr)
elif m==1:
    new_arr.reverse()
    arr_print(new_arr)

对m输入形式不同,判断形式不同(int 或 str --> 0 or '0') 

输出列表(list)的倒序/逆序的几种方法:

一、🚀 使用内置的[::-1]切片操作

Python的列表支持切片操作,你可以使用[::-1]这种特殊的切片方式来轻松地实现列表的倒序。这是一种非常简洁且高效的方法。

二、🚀 使用reversed()函数

reversed()是Python内置的一个函数,它返回一个反转的迭代器。如果你想要一个临时的反转列表,而不是创建一个新的列表,这个函数会非常有用。需要注意的是,reversed()返回的是一个迭代器,如果你需要列表形式的输出,可以将其转换为列表。

三、🚀 使用for循环和append()方法

虽然这种方法相对繁琐,但在理解列表和循环的基础上,它可以帮助你更好地理解倒序列表的实现过程。

n = eval(input())  # 从输入读取一个表达式并计算结果,假设为一个整数n(代表后续输入的元素个数)
l = input().strip().split()  # 从输入读取一个字符串,去掉首尾空格,并按空格分割成列表l
flag = eval(input())  # 从输入读取一个表达式并计算结果,假设为布尔值flag(决定排序顺序)

# 将列表l中的元素按整数大小排序,根据flag决定排序顺序(True为降序,False为升序)
print(" ".join(sorted(l, key=int, reverse=flag)))

 

  • sorted(l, key=int, reverse=flag)

    • l 是一个字符串列表,例如 ['3', '1', '2']
    • sorted() 函数对列表 l 进行排序。
      • key=int 指定了排序的关键字参数,告诉 sorted() 使用 int 函数将列表中的每个元素转换为整数进行比较。这意味着列表中的字符串元素会被转换成整数进行排序。
      • reverse=flag 指定了排序顺序,flag 是一个布尔值。当 flagTrue 时,按降序排序;当 flagFalse 时,按升序排序。
    • 例如,假设 l = ['3', '1', '2'] 并且 flag = False,则 sorted(l, key=int, reverse=flag) 的结果是 ['1', '2', '3']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值