【问题标题】:How to sort a list nested inside another list?如何对嵌套在另一个列表中的列表进行排序?
【发布时间】:2019-05-31 20:51:01
【问题描述】:

我有嵌套在外部列表中的列表。我想对内部列表中的元素进行排序,而不改变外部列表中元素(在这种情况下为列表)的位置。怎么做?

我得到空格分隔的用户输入,我稍后将其转换为嵌套列表,其中每个内部列表包含彼此分隔的数字的数字。我想要的只是以排序形式获取内部列表

num = list(map(str, input().split()))
n_list = []
for i in range(len(num)):
    num_in_num = [int(j) for j in num[i]]
    n_list.append(num_in_num)
print(n_list)

对于这个给定的输入:

5654 3456 7215 7612 5463

我得到的列表是:

[[5, 6, 5, 4], [3, 4, 5, 6], [7, 2, 1, 5], [7, 6, 1, 2], [5, 4, 6, 3]]

我希望输出是这样的:

[[4, 5, 5, 6], [3, 4, 5, 6], [1, 2, 5, 7], [1, 2, 6, 7], [3, 4, 5, 6]]

如何得到这个输出?

【问题讨论】:

  • 试试num_in_num = sorted([int(j) for j in num[i]])

标签: python sorting nested-lists


【解决方案1】:

您可以为此使用地图:

n_list = list(map(sorted, n_list))

或直接:

n_list = list(map(lambda n:sorted(map(int,n)), input().split())

【讨论】:

    【解决方案2】:

    尝试使用list comprehension 将字符串映射到整数,然后使用sorted 对它们进行排序

    num = ['5654', '3456', '7215', '7612', '5463']
    answer = [sorted(map(int, i)) for i in num]
    # [[4, 5, 5, 6], [3, 4, 5, 6], [1, 2, 5, 7], [1, 2, 6, 7], [3, 4, 5, 6]]
    

    【讨论】:

      【解决方案3】:
      inp = '5654 3456 7215 7612 5463' # user input
      res= [] # list to store the final output
      
      # iterating over each number which is divided into a list via inp.split()
      for i in inp.split():
          # keeping internal list which will keep the each digit in int format
          tmp=[]
          for j in i: # iterating over the number eg 5654
               # converting each digit to int and adding it to temp list
               tmp.append(int(j))
          # sorting internal list and appending it to final result list
          res.append(sorted(tmp)) 
      
      print(res) # printing final list
      

      输出

      [[4, 5, 5, 6], [3, 4, 5, 6], [1, 2, 5, 7], [1, 2, 6, 7], [3, 4, 5, 6]]
      

      【讨论】:

        猜你喜欢
        • 2019-01-17
        • 2021-09-30
        • 2013-02-06
        • 2010-09-21
        • 2021-01-23
        • 2017-02-08
        • 2019-06-04
        相关资源
        最近更新 更多