Python - 对包含字符串对象的列表进行排序

Python - Sorting lists which have string objects

我正在尝试根据某些值对列表进行排序。我知道如何根据整数和字符串(按字母顺序)排序。虽然,说到用数学符号做的东西,我不太会做。

我有这个清单...

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

我想通了!

使用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