Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python按照十进制格式进行排序_Python_Sorting - Fatal编程技术网

Python按照十进制格式进行排序

Python按照十进制格式进行排序,python,sorting,Python,Sorting,我想按照下面的编号来排列清单 01 02 03 001 002 但是默认的排序命令会给我 001 002 01 02 03 输出: C:\Users\Desktop>py x.py ['01', '02', '03', '001', '002'] ['01', '02', '03', '001', '002'] 输出: C:\Users\Desktop>py x.py ['01', '02', '03', '001', '002'] ['01', '02', '03', '

我想按照下面的编号来排列清单

01
02
03
001
002
但是默认的排序命令会给我

001
002
01
02
03
输出:

C:\Users\Desktop>py x.py
['01', '02', '03', '001', '002']
['01', '02', '03', '001', '002']
输出:

C:\Users\Desktop>py x.py
['01', '02', '03', '001', '002']
['01', '02', '03', '001', '002']

为了保持长度排序优于数字排序,我认为您需要根据两个标准进行排序:

nums = '03 01 002 02 001'

num_array = nums.split()
sorted_nums = sorted(num_array, key=lambda x: [len(x), x])

print(sorted_nums)
输出:

C:\Users\Desktop>py x.py
['01', '02', '03', '001', '002']
['01', '02', '03', '001', '002']

为了保持长度排序优于数字排序,我认为您需要根据两个标准进行排序:

nums = '03 01 002 02 001'

num_array = nums.split()
sorted_nums = sorted(num_array, key=lambda x: [len(x), x])

print(sorted_nums)
输出:

C:\Users\Desktop>py x.py
['01', '02', '03', '001', '002']
['01', '02', '03', '001', '002']
首先检查字符串的长度,然后逐个字符检查字符串本身


首先检查字符串的长度,然后逐字符检查字符串本身。

或者,对列表进行双重排序:

>>> nums = '03 01 002 02 001'
>>> sorted(sorted(nums.split()),key=len)
['01', '02', '03', '001', '002']
>>> 

或者,对列表进行双重排序:

>>> nums = '03 01 002 02 001'
>>> sorted(sorted(nums.split()),key=len)
['01', '02', '03', '001', '002']
>>> 
拆分() 打印(已排序(xs,key=“{:
xs=“01 02 03 001 002”).split()

打印(已排序(xs,键=”{:如果排序背后有一个逻辑,你可以用Python实现。但是你需要非常清楚。所以首先有一个带前导零的数字,然后是两个带前导零的数字,三,…等等?如果排序背后有一个逻辑,你可以用Python实现。但是你需要非常清楚。所以首先是nu一个前导零的分子量,然后是两个前导零,三,…等等?