Python – 混合对字符串列表中的数字排序
有时,在处理数据记录时,我们可能会遇到以自定义格式接收数据的问题,我们需要执行排序。我们可以接收人名和空格分隔的分数,并要求获得从最好到最差的排序。让我们讨论一种可以解决这个特定问题的方法。
方法#1:使用split() + sort()
+ key函数
上述功能的组合可用于执行此任务。在此,我们使用外部函数执行排序,在该函数中我们拆分字符串并提取数字部分。
# Python3 code to demonstrate
# Numeric Sort in Mixed Pair String List
# using split() + sort() + key function
# helper function
def helper_func(ele):
name, val = ele.split()
return int(val)
# Initializing list
test_list = ["Manjeet 5", "Akshat 7", "Akash 6", "Nikhil 10"]
# printing original list
print("The original list is : " + str(test_list))
# Numeric Sort in Mixed Pair String List
# using split() + sort() + key function
test_list.sort(key = helper_func, reverse = True)
# printing result
print ("The reverse sorted numerics are : " + str(test_list))
输出 :
The original list is : ['Manjeet 5', 'Akshat 7', 'Akash 6', 'Nikhil 10']
The reverse sorted numerics are : ['Nikhil 10', 'Akshat 7', 'Akash 6', 'Manjeet 5']
方法 #2:使用split() + lambda + sorted()
上述方法的组合可用于执行此任务。在此,我们如上所述对数字进行拆分。不同的是它是一个班轮并使用 lambda函数来执行。
# Python3 code to demonstrate
# Numeric Sort in Mixed Pair String List
# using split() + sorted() + lambda
# Initializing list
test_list = ["Manjeet 5", "Akshat 7", "Akash 6", "Nikhil 10"]
# printing original list
print("The original list is : " + str(test_list))
# Numeric Sort in Mixed Pair String List
# using split() + sorted() + lambda
res = sorted(test_list, reverse = True, key = lambda ele: int(ele.split()[1]))
# printing result
print ("The reverse sorted numerics are : " + str(res))
输出 :
The original list is : ['Manjeet 5', 'Akshat 7', 'Akash 6', 'Nikhil 10']
The reverse sorted numerics are : ['Nikhil 10', 'Akshat 7', 'Akash 6', 'Manjeet 5']