16.数字大小升降排序编写

数字大小升降排序编写输入描述:
输入为:
1. 排序方式:DESC(降序) ASCE(升序),分别表示按降序和升序排列,大小写不敏感
2. 一组十进制整数字符串,以","符号作为分隔符
例子:
DESC 789,123,456
ASCE 234,567,89
排序方式DESC ASCE请忽略大小写
输出描述:
按指定排序方式排序后得到的十进制整数字符串;
输出的数字字符串数组,以","字符作为分隔符。
示例1
输入:
ASCE 789,123,456
输出:
123,456,789 #整体是升序,每一个具体的也是升序

示例2

输入:

DESC 1258,529,2267

输出:

8521,7622,952   #整体是降序序,每一个具体的也是降序

二,下面的代码编写:

一种是if分别判断,另一种运用了集合优化简单

 1 print(‘输入的格式为:\nASCE 123,456,789\nDESC 123,456,789‘)
 2 string = input(‘请输入你的序列:‘)
 3 string_clear = string.strip() #这一步是防止用户在首尾出多输入空格,处理首尾的空格
 4 sort = string_clear.split(‘ ‘)[0].replace(‘ ‘,‘‘).upper() #以空格拆分取出排序的方式然后小写改大写
 5 num = string_clear.split(‘ ‘)[1].replace(‘ ‘,‘‘)  #以空格拆分取出用户输入的字符串数字
 6 if sort not in  [‘ASCE‘,‘DESC‘]:  #这里判断取出来的排序方式是否在列表里 如果不在直接退出程序并提示
 7     print(‘请输入正确的排序‘‘ASCE‘‘或者‘‘DESC‘)
 8     exit()
 9 #第一种if判断方法:
10 if sort == ‘ASCE‘:
11     num_list = num.split(‘,‘) #把数字字符串拆分字符串列表
12     index = 0
13     for var in num_list:#单个取出字符串列表里的字符串
14         num_list[index] = ‘‘.join(sorted(num_list[index],reverse=False))
15         #单独取出来的字符串进行sorted排序后输出为字符串列表,reverse=False是否颠倒,然后再合并在一起
16         index += 1
17     else:
18         num_list.sort() #进行字符串列表排序
19 if sort == ‘DESC‘:
20     num_list = num.split(‘,‘) #把数字字符串拆分字符串列表
21     index = 0
22     for var in num_list:#单个取出字符串列表里的字符串
23         num_list[index] = ‘‘.join(sorted(num_list[index],reverse=True))
24         index += 1
25     else:
26         num_list.sort(),num_list.reverse()    #进行字符串列表排序,然后颠倒
27 print(‘>>>排序结果为:‘,‘,‘.join(num_list))        #以逗号合并输出字符串
28 ‘‘‘
29 #第二种运用集合优化简短:
30 sort_dict = {‘ASCE‘:False,‘DESC‘:True}
31 reverse = sort_dict[sort]
32 num_list = num.split(‘,‘) #把数字字符串拆分字符串列表
33 index = 0
34 for var in num_list:#单个取出字符串列表里的字符串
35     num_list[index] = ‘‘.join(sorted(num_list[index],reverse=reverse))
36     index += 1
37 else:
38     num_list.sort(reverse=reverse)
39 print(‘>>>排序结果为:‘,‘,‘.join(num_list))        #以逗号合并输出字符串
40 ‘‘‘

原文地址:https://www.cnblogs.com/zhangan/p/9910409.html

时间: 2024-08-03 17:49:53

16.数字大小升降排序编写的相关文章

解决java中按照数字大小来排序文件

我们想要输出(1.jpg.2.jpg.3.jpg.10.jpg.11.jpg.20.jpg.21.jpg.31.jpg) 突然看到网上一些写法 总结:既然自己按照定义的文件名规则来处理,也可以进行使用正则表达,简化使用 1 File[] files = file.listFiles(); 2 if(files==null)return resultFileName; 3 List<File> fileList = new ArrayList<File>(); 4 for (File

key值为数字字符的对象,按数字大小顺序排序|自定义obj.sort函数|为对象排序

var helper = { sort:function(data){ //{“20141216”:{},“20141217”:{}}按大小排序, var arr1 = [],arr2=[],self = this; for(var key in data){ arr1.push(key); } arr1.sort(); for(var i=0;i<arr1.length;i++){ var date = arr1[i]; var o = self._clone(data[date]); o.d

DIR 按文件名中数字大小进行排序

@echo off set arg=%1 if "%arg%" == "" set arg=* if "%arg%" == "-h" ( echo sort by numbers in filename echo usage: nsort [drive:][path][filename] exit /b ) setlocal EnableExtensions for /F "delims=" %%I in

数字择优( 计算一个数与一组数字中的哪一个数字大小最接近)

一,应用场景 应需求根据两组经纬度计算出B点相对于A点的角度后,根据这个角度在一组预置点中选取最近的一个预置点 二,代码部分 1 /** 2 * 计算一个数与一组数字中的哪一个数字大小最接近 3 * @param re 4 * @param ble 5 * @return 6 */ 7 public static int choicePreset(int[] re,int ble) { 8 //1.存差值的绝对值 9 int[] result=new int[re.length]; 10 //2

如何对字典按键值大小进行排序

有些时候,我们需要对字典按键值大小进行排序.比如以下情况:一个字典,包含的内容为 国家:人口数.{'Indonesia' : '239870000', 'Malaysia' : '28401000'}注意字典的键值为字符串'239870000',不能直接进行大小排序.我们需要将它转换成数字. 下面做一个案例.已有一个世界各国从1960年到2010年的人口统计.我们需要将2010年各国人口提取出来按从大到小排序. 参考代码: '''导入一个人口统计文本文件'''import jsonfilenam

剑指offer 16.合并两个排序的链表

16.合并两个排序的链表 题目 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 思路 这题以前也做过的,只需要新建一个表头,然后比较两边的大小,依次加入新的链表,最后再把没用上的加到结尾即可. now代表当前节点,base代表头结点. 代码 public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public List

关于js比较数字大小

<head> <meta http-equiv="Content-Type" content="text/html; charset=gbk"> <script type="text/javascript"> function compare(){ var t1 = document.getElementById("text1").value; var t2 = document.getEl

Powershell获取文件夹大小和排序【层级关系】【大小】【名称】

#***************************************************************************************** #使用示例: #示例:GetFoldersize.ps1 -FolderPath "D:\Exchange Server" -sort Layer -Class 3 -Size 0.5 #获取"D:\Exchange Server"目录下的3层以内的大于0.5GB的子文件夹,并按照子文件

比较数字大小

比较数字大小 思路:1.先判断输入的是不是两个参数 2.判断输入的两个参数是不是数字 3.判断大小: #!/bin/bash a=$1 b=$2 if [ $# -ne 2 ];then echo "Usage:sh $0 num1 num2." exit 1 fi [ -n "`echo "$1"|sed 's/[0-9]//g'`" ]&&echo "Please Input 1 Number."&