【问题标题】:python sorting lists according to number of elements [duplicate]python根据元素数量对列表进行排序[重复]
【发布时间】:2017-07-27 04:14:27
【问题描述】:

我需要根据它们拥有的元素数量对集合中的列表进行排序。 以下是我的一些清单:

['RB', 'RB', 'VBD', 'TO', 'PRP', 'RB']
['PRP', 'RB', 'RB', 'JJ']
['PRP', 'MD', 'RB', 'VB', 'PRP$', 'NN', 'RB', 'IN', 'NN']
['RB', 'DT', 'NN']
['PRP', 'RB', 'VBP', 'PRP']
['PRP', 'RB', 'VBD', 'IN', 'DT']
['MD', 'RB', 'VB', 'IN', 'NNP', 'RB']
['RB', 'CD']

这是寻求的输出:

['RB', 'CD']
['RB', 'DT', 'NN']
['PRP', 'RB', 'RB', 'JJ']
['PRP', 'RB', 'VBP', 'PRP']
['PRP', 'RB', 'VBD', 'IN', 'DT']
['MD', 'RB', 'VB', 'IN', 'NNP', 'RB']
['RB', 'RB', 'VBD', 'TO', 'PRP', 'RB']
['PRP', 'MD', 'RB', 'VB', 'PRP$', 'NN', 'RB', 'IN', 'NN']

列表按照元素的数量从小到大排序。

有人可以帮忙吗?...我做了一些研究,但找不到解决方法。非常感谢。有字符串长度的解决方案,但列表中的元素没有解决方案

【问题讨论】:

  • sorted(yourlist,key=len)
  • 请在发布问题之前进行最低限度的研究,例如将您打算用于该问题的标题粘贴到 Google 搜索中。
  • 我执行了搜索。给出的解决方案是针对字符串的,而不是针对列表中的元素的。给出的解决方案不起作用。我认为,人们急于在问题上打负分
  • @norpa: len 在列表上的工作方式相同。

标签: python list sorting


【解决方案1】:

使用sorted()函数,使用每个元素的长度作为排序键:

sorted(the_list, key=len)

例子:

>>> the_list = [
...     ['RB', 'RB', 'VBD', 'TO', 'PRP', 'RB'],
...     ['PRP', 'RB', 'RB', 'JJ'],
...     ['PRP', 'MD', 'RB', 'VB', 'PRP$', 'NN', 'RB', 'IN', 'NN'],
...     ['RB', 'DT', 'NN'],
...     ['PRP', 'RB', 'VBP', 'PRP'],
...     ['PRP', 'RB', 'VBD', 'IN', 'DT'],
...     ['MD', 'RB', 'VB', 'IN', 'NNP', 'RB'],
...     ['RB', 'CD']
... ]
>>> sorted(the_list, key=len)
[['RB', 'CD'], ['RB', 'DT', 'NN'], ['PRP', 'RB', 'RB', 'JJ'], ['PRP', 'RB', 'VBP', 'PRP'], ['PRP', 'RB', 'VBD', 'IN', 'DT'], ['RB', 'RB', 'VBD', 'TO', 'PRP', 'RB'], ['MD', 'RB', 'VB', 'IN', 'NNP', 'RB'], ['PRP', 'MD', 'RB', 'VB', 'PRP$', 'NN', 'RB', 'IN', 'NN']]

【讨论】:

  • 我的列表中没有列表。我必须创建列表列表吗?我希望找到一个更直接的解决方案
  • @norpa:那么你在哪里拥有它们?
  • @norpa 列表可以是任何可迭代的。这包括列表、元组和生成器。我不确定你所说的“直截了​​当”是什么意思。您的列表目前存储在什么位置?
【解决方案2】:

您可以创建列表的列表,然后按如下所示进行排序:

a = ['RB', 'RB', 'VBD', 'TO', 'PRP', 'RB']
b = ['PRP', 'RB', 'RB', 'JJ']

combo = [a,b]

sorted_list = sorted(combo, key=len)

【讨论】:

    猜你喜欢
    • 2012-03-11
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    相关资源
    最近更新 更多