print activities
activities = sorted(activities,key = lambda item:item[1])
print activities
Run Code Online (Sandbox Code Playgroud)
在这种情况下的活动是一个元组列表,如(start_number,finish_number)上面代码的输出,根据我应该是按照递增顺序排序的值列表finish_number.当我在shell中尝试上面的代码时,得到了以下输出.我不确定为什么第二个列表没有按照增加的顺序排序finish_number.请帮助我理解这一点.
[('1', '4'), ('3', '5'), ('0', '6'), ('5', '7'), ('3', '9'), ('5', '9'), ('6', '10'), ('8', '11'), ('8', '12'), ('2', '14'), ('12', '16')]
[('6', '10'), ('8', '11'), ('8', '12'), ('2', '14'), ('12', '16'), ('1', '4'), ('3', '5'), ('0', '6'), ('5', '7'), ('3', '9'), ('5', '9')]
Run Code Online (Sandbox Code Playgroud)
您正在排序字符串而不是整数:在这种情况下,10它比"小" 4.要对整数进行排序,请将其转换为:
activites = sorted(activities,key = lambda item:int(item[1]))
print activities
Run Code Online (Sandbox Code Playgroud)
结果是:
[('1', '4'), ('3', '5'), ('0', '6'), ('5', '7'), ('3', '9'), ('5', '9'), ('6', '10'), ('8', '11'), ('8', '12'), ('2', '14'), ('12', '16')]
Run Code Online (Sandbox Code Playgroud)
您的商品将被比较为字符串,而不是数字.因此,由于1角色在4字典之前出现,因此10之前有意义4.
您需要先将值转换为int:
activities = sorted(activities,key = lambda item:int(item[1]))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |