Python 如何按子列表中的一项对列表进行排序?

Python 如何按子列表中的一项对列表进行排序?,python,Python,我有一个清单,如下所示: list = [[u'schei\xdfunwetter', u'storm', u'0.0007813'], [u'schei\xdfunwetter', u'goddamn', u'0.0002343'], [u'ingenieurin', u'night', u'0.0000442'], [u'ingenieurin', u'you', u'0.0000008'], [u'ingenieurin', u'NULL', u'0.0000004'], [u'ingen

我有一个清单,如下所示:

list = [[u'schei\xdfunwetter', u'storm', u'0.0007813'], [u'schei\xdfunwetter', u'goddamn', u'0.0002343'], [u'ingenieurin', u'night', u'0.0000442'], [u'ingenieurin', u'you', u'0.0000008'], [u'ingenieurin', u'NULL', u'0.0000004'], [u'ingenieurin', u'last', u'0.0000472'], [u'ingenieurin', u'anything', u'0.0000328']]
我想按数字(=概率)对这个列表进行排序。 通过查看以前关于Stackoverflow的问题/答案,我发现以下解决方案似乎对列表有效(
li=['a1',1,1.56],'b3',6',9.28],'c2',1,6.25]…]
):

但是,对于我的数据,这不起作用,并且不会返回任何结果。 因为我认为这与数字是字符串有关,所以我尝试了以下方法:

sorted_list = list.sort(key=lambda x: int(x[2]))
,但这将返回另一个错误:

ValueError: invalid literal for int() with base 10: '0.0000723'
有人能帮忙吗

In [24]: sorted(seq, key=lambda x: float(x[2]))
Out[24]: 
[[u'ingenieurin', u'NULL', u'0.0000004'],
 [u'ingenieurin', u'you', u'0.0000008'],
 [u'ingenieurin', u'anything', u'0.0000328'],
 [u'ingenieurin', u'night', u'0.0000442'],
 [u'ingenieurin', u'last', u'0.0000472'],
 [u'schei\xdfunwetter', u'goddamn', u'0.0002343'],
 [u'schei\xdfunwetter', u'storm', u'0.0007813']]
  • 使用
    float
    代替
    int
  • 使用而不是。排序方法 返回None并就地修改列表。
    sorted
    函数返回列表的排序副本。如果要分配 将结果添加到排序列表中,然后需要使用排序后的
    
    功能
  • 切勿命名变量
    列表
    ,因为它会隐藏 同名
你必须试一试

>>> list.sort(key=lambda x: x[2])
>>> list
[[u'ingenieurin', u'NULL', u'0.0000004'], [u'ingenieurin', u'you', u'0.0000008'], [u'ingenieurin', u'anything', u'0.0000328'], [u'ingenieurin', u'night', u'0.0000442'], [u'ingenieurin', u'last', u'0.0000472'], [u'schei\xdfunwetter', u'goddamn', u'0.0002343'], [u'schei\xdfunwetter', u'storm', u'0.0007813']]

list.sort
将自行执行操作。它将一无所获。如果您必须创建新的排序列表,那么您必须使用内置函数。

我不知道排序和排序之间有区别-感谢您指出这一点!它现在起作用了。。。谢谢!list.sort始终返回None。列表已按位置排序。
>>> list.sort(key=lambda x: x[2])
>>> list
[[u'ingenieurin', u'NULL', u'0.0000004'], [u'ingenieurin', u'you', u'0.0000008'], [u'ingenieurin', u'anything', u'0.0000328'], [u'ingenieurin', u'night', u'0.0000442'], [u'ingenieurin', u'last', u'0.0000472'], [u'schei\xdfunwetter', u'goddamn', u'0.0002343'], [u'schei\xdfunwetter', u'storm', u'0.0007813']]