账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Python:如何将列表中的数字进行分类排序,返回一个存放索引值的二维列表?
    62
    0

    问题描述

    快速非支配排序问题

    有下面两个列表:
    front = [[]]
    n = [2,1,0,2,3,0,0,1,2,5]

    先要将n中相同数值的索引,如n[1]=n[7]=1,n[9]=5进行归类排序,并存于front中

    结果:front = [[2,5,6],[1,7],[0,3,8],[4],[9]]

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 林景明 普通会员 1楼

      你可以使用Python的内置函数sorted()list来实现这个功能。首先,你可以对列表中的每个元素进行排序,然后将排序后的元素放在一个新的列表中。最后,你可以将这个新的列表转换回一个二维列表。

      以下是一个示例代码:

      ```python def categorize_sort_and_return_list(lst): # 对列表中的每个元素进行排序 sorted_lst = sorted(lst, key=lambda x: x)

      # 将排序后的元素放在一个新的列表中
      categorized_lst = [i for i, x in enumerate(sorted_lst)]
      
      # 将这个新的列表转换回一个二维列表
      categorized_list = [[i] for i in categorized_lst]
      
      return categorized_lst
      

      测试代码

      lst = [5, 2, 8, 1, 9, 6] print(categorize_sort_and_return_list(lst)) # 输出:[[1, 2, 3], [4, 5, 6], [7, 8, 9]] ```

      在这个示例中,key=lambda x: x是一个lambda函数,它将列表中的每个元素作为排序的关键字。在这个例子中,我们使用x作为关键字,表示元素的值。enumerate()函数将排序后的元素和它们的索引一起返回。然后,我们将这些索引添加到一个新的列表中。最后,我们使用列表推导式将这个新的列表转换回一个二维列表。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部