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一个前导零的分子量,然后是两个前导零,三,…等等?