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
我正在尝试根据某些值对列表进行排序。我知道如何根据整数和字符串(按字母顺序)排序。虽然,说到用数学符号做的东西,我不太会做。
我有这个清单...
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