无法在python中对多列表进行排序

无法在python中对多列表进行排序,python,Python,我试图在一个列表中对列表进行排序,但失败了,我的代码是否有问题 x = [[int(i)] for i in raw_input().split()] print x q = x.sort(key=lambda p: p[0]) print q 在此之前,我尝试过更简单的代码,例如: x = [[int(i)] for i in raw_input().split()] print (x.sort()) 但这两种情况的结果是相同的: 列表。排序是一种就地操作,返回无。因此您正在分配无 如果

我试图在一个列表中对列表进行排序,但失败了,我的代码是否有问题

x = [[int(i)] for i in raw_input().split()]
print x

q = x.sort(key=lambda p: p[0])
print q
在此之前,我尝试过更简单的代码,例如:

x = [[int(i)] for i in raw_input().split()]
print (x.sort())
但这两种情况的结果是相同的:


列表。排序
是一种就地操作,返回
。因此您正在分配

如果希望将新的列表作为值返回,请使用排序的:

q = sorted(x, key=...)
print(q)
如果您想就地变异
x
,请使用:

x.sort(...)
print(x)
提示-要获得一个简单的列表,请使用:

from itertools import chain

q = list(chain.from_iterable(x))
现在,如果要排序:

q = sorted(q) # no need for key

x.sort
就地修改,它不会返回已排序的列表。。。它已经就位了。。。所以你想再次打印(x),而不是
q
。还有-你真的想要一个列表吗?看起来像是一个简单的
int
s列表就可以了。
x.sort()
不返回值。不要这样做
q=x.sort(…)