我试着根据一些值对列表进行排序。我知道如何根据整数和字符串进行排序(按字母顺序)。虽然,当涉及到由数学符号组成的物体时,我不能完全做到。
我有这份名单..。
ls = ["Arsenal",10-5,10,"Chelsea",20-5,10]
我把它整理成这样:
newLs = sorted([ls[i:i+3] for i in range(0,len(ls),3)],key=lambda x:(int(x[2]),int(x[1]))
我希望10-5
被视为5
,但在打印时被显示为10-5
稍后打印的示例:
Arsenal 10-5 10
Chelsea 20-5 10
发布于 2015-01-05 21:17:13
我想出来了!
使用eval(x[2])
等等。另外,它周围需要括号(使它成为一个元组):(eval(x[2]),eval(x[1]))
ls = ["Arsenal","10-5","10","Chelsea","20-5","0+25"]
newLs = sorted([ls[i:i+3] for i in range(0,len(ls),3)],key= lambda x: (eval(x[2]),eval(x[1])))
print(newLs)
在这里运行它:http://ideone.com/Jcu5b0
https://stackoverflow.com/questions/27787159
复制相似问题