python按某一内部列表排序
我有一个list他的形式是这样的list0=[list1,list2,list3]三个list1、2、3长度一样且一一对应(list1[0]、list2[0]、list3...
我有一个list他的形式是这样的list0 = [list1,list2,list3]
三个list1、2、3长度一样且一一对应(list1[0]、list2[0]、list3[0]为一组对应关系),每个list中元素类型一样,list2是float数,我现在想让整个list0依据list2中的数值大小顺序排列,希望排序后list1、2、3之间的对应关系不变。万能网友,有什么好的函数或者方法建议么?在线等啊。。。。。。。。。 展开
三个list1、2、3长度一样且一一对应(list1[0]、list2[0]、list3[0]为一组对应关系),每个list中元素类型一样,list2是float数,我现在想让整个list0依据list2中的数值大小顺序排列,希望排序后list1、2、3之间的对应关系不变。万能网友,有什么好的函数或者方法建议么?在线等啊。。。。。。。。。 展开
1个回答
展开全部
#!/usr/bin/env python2
# coding=utf-8
import itertools
def sort_by_2nd_list(list0):
list_of_tuple = itertools.izip(*list0)
sorted_list = sorted(list_of_tuple, key=lambda x: x[1])
return [[x[i] for x in sorted_list] for i in range(len(list0))]
def test_sort_by_2nd_list():
list1 = ['A', 'B', 'C']
list2 = [1.5, 1.2, 1.3]
list3 = [1, 2, 3]
list0 = [list1, list2, list3]
assert sort_by_2nd_list(list0) == [['B', 'C', 'A'],
[1.2, 1.3, 1.5],
[2, 3, 1]]
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询