【发布时间】:2018-09-03 17:03:36
【问题描述】:
如lista = [300KB, 12MB, 100KB, 1GB],我要处理lista,然后改成[100KB, 300KB, 12MB, 1GB]
如何使用简单的方法对其进行排序?
【问题讨论】:
标签: python list sorting numbers letters
如lista = [300KB, 12MB, 100KB, 1GB],我要处理lista,然后改成[100KB, 300KB, 12MB, 1GB]
如何使用简单的方法对其进行排序?
【问题讨论】:
标签: python list sorting numbers letters
"lista" 必须是字符串列表。
sorted 是你的朋友。 Sorting Mini-HOW TO
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)
【讨论】:
float(num) 代替int(num) 可能是健壮的。