gpt4 book ai didi

python - 基于工程单位的元组排序列表

转载 作者:太空宇宙 更新时间:2023-11-04 10:09:55 25 4
gpt4 key购买 nike

我正在尝试按以下方式对列表进行排序。

data = [('18.3G', 'pgaur'), ('29.6G', 'adsoni'), ('5.51G', 'keyur'), ('10.8G', 'adityac')]

sorted(data, key= lambda x:x[0])

但它不是对数据进行排序。

最佳答案

要以对人类有意义的方式对数字进行排序,您必须确保它们以数字而非文本形式呈现:

  • 例如,“5”是表示数字的字符串,而不是数字,所以example_list = ['5', '10'] 如果排序会产生 `['10', '5']因为比较的是“5”和“1”;一次一个字符。

要获得您可能想要的结果,您必须执行以下操作:

data = [('18.3G', 'pgaur'), ('29.6G', 'adsoni'), ('5.51G', 'keyur'), ('10.8G', 'adityac')]

sorted_list = sorted(data, key=lambda x: float(x[0][:-1]))
print(sorted_list)
# prints [('5.51G', 'keyur'), ('10.8G', 'adityac'), ('18.3G', 'pgaur'), ('29.6G', 'adsoni')]

注意 x[0] 上的切片。它采用 x[0] 中除最后一个字符 ('G') 之外的所有字符,因为这会弄乱数字的排序。然后使用 float() 将切片的 x[0] 转换为 float 并用于排序。最后将结果保存在一个新列表中。

关于python - 基于工程单位的元组排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38996396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com