我已经用python读取文件并将内容添加到列表中(“ batman,10”,“ Iphone,900”),但不知道如何对其进行分类,因此batman,10首先是因为它的数量较少,而不是因为它的名字。我该怎么办?
答案 0 :(得分:0)
您想要一个特殊的键来分割字符串,将第二部分转换为整数以传递给sort
the_tuple = ('batman, 10', 'Iphone,900')
result = sorted(the_tuple, key = lambda x : int(x.split(",")[1]))
如果号码相同/名称不同,可以根据需要添加决胜局。在这种情况下,我会避免使用lambda
,因为它会使split
重复:
the_tuple = ('robin, 10', 'batman, 10', 'Iphone,900')
def sort_function(x):
name,number = x.split(",")
return int(number),name
result = sorted(the_tuple, key = sort_function)
结果:
['batman, 10', 'robin, 10', 'Iphone,900']
要按最大数字排序,只需将reverse=True
添加到sort
(这也可以打破平局决胜局,因此另一种选择是进行return -int(number),name
(取反数字)