python:如何对字母和数字列表进行排序

python:如何对字母和数字列表进行排序,python,list,sorting,numbers,letters,Python,List,Sorting,Numbers,Letters,例如,lista=[300KB,12MB,100KB,1GB],我想处理lista,然后将其更改为[100KB,300KB,12MB,1GB] 如何使用简单的方法对其进行排序 “lista”必须是字符串列表。 sorted是你的朋友 谢谢!这是我所看到的最简单的方法。使用float(num)而不是int(num)可能是健壮的。 def memory_mult(text): memory = {'KB':1024, 'MB':1024**2, 'GB':1024**3} num =

例如,
lista=[300KB,12MB,100KB,1GB]
,我想处理
lista
,然后将其更改为
[100KB,300KB,12MB,1GB]

如何使用简单的方法对其进行排序

“lista”必须是字符串列表。
sorted
是你的朋友


谢谢!这是我所看到的最简单的方法。使用
float(num)
而不是
int(num)
可能是健壮的。
def memory_mult(text):
    memory = {'KB':1024, 'MB':1024**2, 'GB':1024**3}
    num = text[:-2]
    mult = text[-2:]
    return int(num)*memory[mult]

sorted(lista, key=memory_mult)