python读取列表前10_如何在python中对大量列表进行排序以获得前10名?

我有一个.txt文件,里面有很多这样的结构。在["saelyth", 17896, 96511, 4733, "0", "F00", "0", 11, 1, "ffg, ghks"]

["example", 765, 3873, 342, "000", "F63", "5", 15, 1, "ffg"]

["whatever", 158, 756, 36, "000", "000", "0", 13, 0, "ffg, jdhs"]

["okay", 12680, 64548, 4469, "000", "0CC", "1", 15, 9, "ffg"]

["randomname", 5668, 30105, 1752, "0", "360", "0", 14, 7, "ffg"]

["something", 24798, 132792, 5764, "000", "000", "0", 12, 3, "ffg"]

到目前为止我一直在使用json.loads逐行加载。但现在我想用值[3]作为键,列出列表的前10名(按升序排列)。在

我该怎么做?我在google上搜索sorted的工作原理,但我不认为我可以在不破坏列表的情况下使用它,只提取这个值,然后我就无法在前10个打印中显示正确的列表:\

我试着把它转换成元组,但它不能保存文件,也不知道为什么。在

^{pr2}$

有什么想法或者更简单的方法来做我想做的事吗?在

信息:IDLE 3.3.2,文本文件包含4300个列表。在

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python ,可以使用 `open()` 函数打开一个文本文件,并使用 `readlines()` 函数读取文件的所有行。对于三维无序数据,可以将每行数据表示为一个包含三个浮点数的元组,然后将所有元组放入一个列表。下面是一个示例代码,演示如何读取一个文本文件的三维无序数据,并使用自定义的比较函数对其进行排序: ```python def compare_points(p1, p2): """ 自定义比较函数,用于比较三维坐标点 """ if p1[0] < p2[0]: return -1 elif p1[0] > p2[0]: return 1 elif p1[1] < p2[1]: return -1 elif p1[1] > p2[1]: return 1 elif p1[2] < p2[2]: return -1 elif p1[2] > p2[2]: return 1 else: return 0 # 打开一个文本文件,读取数据 with open('data.txt', 'r') as f: lines = f.readlines() # 将每行数据表示为一个元组,并放入一个列表 points = [] for line in lines: x, y, z = line.strip().split() points.append((float(x), float(y), float(z))) # 对列表进行排序,使用自定义的比较函数 sorted_points = sorted(points, cmp=compare_points) # 打印排序后的结果 print(sorted_points) ``` 在上面的代码,我们首先使用 `open()` 函数打开一个为 `data.txt` 的文本文件,并使用 `readlines()` 函数读取的所有行。然后,我们逐行读取文件数据,并将每行数据表示为一个包含三个浮点数的元组,然后将所有元组放入一个列表。在读取数据时,我们使用 `strip()` 函数去掉每行数据的空白字符,并使用 `split()` 函数将每行数据按照空格分隔成三个部分,并将其转换为浮点数。 在读取数据后,我们对数据进行排序,使用自定义的比较函数 `compare_points()` 进行排序。在排序时,我们使用 `sorted()` 函数,并将 `cmp` 参数设置为 `compare_points()` 函数,用于指定使用自定义的比较函数进行排序。最后,我们打印排序后的结果。 通过这种方法,我们可以在 Python 读取一个文本文件的三维无序数据,并使用自定义的比较函数对其进行排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值