我有一个按第一个列表对列表列表进行排序的函数。当我将函数与如下变量一起使用时:
sort_lists(IN[0],IN[1],IN[2])
它完美地工作。虽然,由于我不知道我的输入包含多少个列表,但我想将其用作我的变量:
sort_lists(IN[idx] for idx in range(len(IN)))
尽管这会返回一个列表(超级列表)的排序。为什么这些变量之间存在差异,我该如何改进代码?
这是决定性的函数(这里 IN[0] 是带有多个子列表的输入):
def sort_lists(*args):
zipped_list= zip(*sorted(zip(*args)))
return [list(l) for l in zipped_list]
OUT = sort_lists(data_sort[0],data_sort[1],data_sort[2])
我想使用这个输出:
OUT = sort_lists(data_sort[idx] for idx in range(len(IN[0])))