在Python中对列表列表进行唯一排序

2024-09-27 19:30:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份名单-

super_list = [seconds, self.flowdata, key]

其中seconds是一个10位数的数字,self。flowdata是一个由160个整数组成的列表,key是一个标识字符串。打印super_list将产生以下结构的多次迭代,所有迭代的值都不同

示例:

^{pr2}$

每一组秒数、flowdata和key都是相关的。在

我想对super_list进行排序,以便秒数从最小到最大排序,同时也要将它的相关流数据和键放在super_list中相同的数字“行”中。在

也就是说,上面的例子是排序列表中的第一个(1509321600是秒列表中最小的秒数),上面的flowdata也将是flowdata中的第一个,上面的键“1441-4731-1-10/30/2017”将是第一个键。在

帮忙吗?在


Tags: key字符串self列表排序数字整数标识
2条回答

您可以将列表压缩到一个元组中,然后对元组列表进行排序,然后使用列表理解来解压元组,如下所示:

super_list = [seconds, flowdata, key for zipped_tuple in sorted(zip(super_list[0], super_list[1], super_list[2]))]

其中seconds、flowdata、key和压缩元组是任意名称,没有超出列表理解范围的范围。在

假设您的列表如下所示:[[seconds1, flowdata1, key1], [seconds2, flowdata2, key2], ...]

只需使用super_list.sort()。在

这将按字典顺序(从左到右)对字段进行排序。由于seconds是最左边的字段,因此所有条目都将按它排序。在

也可以使用key参数对sort按特定字段进行排序,例如:

super_list.sort(key=lambda row: row[0]) #sort by seconds field

相关问题 更多 >

    热门问题