在Python 2.7中对二维数组进行排序

时间:2018-03-12 00:43:19

标签: python python-2.7

原来如此!大家好。我希望你能帮助我解决这个问题。我需要编写一个带有签名sort_2D_List(List)→List的函数,它应该按名称对我的2D列表中的学生进行排序。我想出了这段代码:

comp_sci_students = [ ['Steve Jobs', 0, 'G40F'] , ['Ada Lovelace', 1, 'G400'], ['Virginia Woolf', 2, 'G300'] ]

def sort_2D_List(List):
    return List

List = comp_sci_students
List.sort(key=lambda x:x[0], reverse=False)

sort_2D_List(List)

但它不会给我任何输出。你能解释一下是什么问题吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

你这里有很多事情可能不是你想的那样

  1. 您的列表是“comp_sci_students”,您无需将其重新分配给其他变量

  2. 您目前正在尝试将其排序为Lambda函数,可能会在您的函数中发生

  3. 您的功能目前没有做任何事情。你给它一个列表,它所做的只是返回相同的列表

  4. 因为你的函数正在返回某个东西(列表)你需要以某种方式接收该返回。像new_list = sort_2D_List(list)

  5. 这样的东西

    你可能想要做的是:

    comp_sci_students = [ ['Steve Jobs', 0, 'G40F'] , ['Ada Lovelace', 1, 'G400'], ['Virginia Woolf', 2, 'G300'] ]
    
    def sort_2D_List(input_list):
        input_list.sort(key=lambda x:x[0], reverse=False)
        return input_list
    
    output_list = sort_2D_List(comp_sci_students)
    # Do something with the output List (Print?)