[英]Python sort lists with lists inside
假设一个列表列表,像这样:
lists=[[3,2,1,4],[6,4,2,8],[9,6,3,12]]
如果我要按lists[0]
进行排序,则应按以下方式进行排序:
lists=[[1,2,3,4],[2,4,6,8],[3,6,9,12]] #can be another variable
具有三个列表的列表:
list1,list2,list3=(list(t) for t in zip(*sorted(zip(lists[0], lists[1],lists[2]))))
但这是一个特定的解决方案,列表中的n个列表可能更通用。
lists
变量是这样创建的:
lists = [[] for x in xrange(n)]
并将这些值附加在后面。
实际上,所有值都是数字值(浮点数或整数),但这可能会更好地解释它。
lists=[[3,2,1,4],["three","two","one","four"],["tres","dos","uno","cuatro"]]
我想知道如何对其进行排序并最终得到:
[[1,2,3,4],["one","two","three","four"],["uno","dos","tres","cuatro"]]
最好使用Schwartzian变换的情况不太可能发生
>>> lists=[[3,2,1,4],["three","two","one","four"],["tres","dos","uno","cuatro"]]
>>> [[x for i, x in sorted(zip(lists[0], sublist))] for sublist in lists]
[[1, 2, 3, 4], ['one', 'two', 'three', 'four'], ['uno', 'dos', 'tres', 'cuatro']]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.