【问题标题】:Sort a lot of lists with small amount of code [duplicate]用少量代码对大量列表进行排序[重复]
【发布时间】:2016-10-24 07:43:10
【问题描述】:

有没有一种不用写就可以对很多列表进行排序的方法:

list.sort(list1)
list.sort(list2)
list.sort(list3)
...

对于每一个列表? 当你有很多列表时,这很乏味

【问题讨论】:

  • 为什么不先将所有列表内容添加到一个列表中,然后对最终列表进行排序
  • 为什么会有这么多列表被单个变量引用?它们是更大数据结构的一部分吗?
  • 我认为您的问题是命名列表。不可能围绕列表、字典或任何类构建任何循环。

标签: python list python-3.x sorting


【解决方案1】:

最好使用for-loop:

lists = [1, 2, -1], [2, 0, 6], [91, 3, 82]    
for l in lists: l.sort()

list1, list2, list3 = lists

现在每个列表都进行了相应的排序。

您当然可以map 它,但这有点过头了,因为您还需要将其扩展为带有list 的列表,并丢弃作为副作用产生的Nones:

_ = list(map(list.sort, lists))

【讨论】:

    【解决方案2】:

    你甚至没有将你的列表组合成一个命名变量,所以代码只需要 2 行

    l1 = [6,5,4,3,2,1]
    l2 = [16,9,4,1]
    
    #start of code
    for my_l in [l1,l2]:
        list.sort(my_l)
    #stop of code
    
    print l1
    print l2
    

    【讨论】:

      猜你喜欢
      • 2015-10-10
      • 2016-07-16
      • 1970-01-01
      • 2013-10-15
      • 2012-01-27
      • 2017-07-27
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      相关资源
      最近更新 更多