排序列表和打印结果

时间:2018-09-11 15:02:00

标签: python

我有以下程序。我想对列表a和列表b进行排序,并将结果存储在m和n中。

a = ['c','a','t']
b = ['t','a','c']
m = a.sort()
n = b.sort()
print(m,n)

实际输出:

(None, None)

预期:

(['a','c','t'], ['a','c','t'])

7 个答案:

答案 0 :(得分:1)

.sort()返回None,因为它对列表进行了排序,并且不返回列表。但是胡言乱语会解决。

a = ['c','a','t']
b = ['t','a','c']
m = sorted(a)
n = sorted(b)
print(m,n)

答案 1 :(得分:1)

sort()方法本身会更改a, b,并且不会返回任何内容。如果要创建排序的副本,请改为

m = sorted(a)
n = sorted(b)

答案 2 :(得分:0)

sort()在不创建新列表的情况下对列表进行排序

您可以在sort()之后打印a和b

或使用sorted(a)sorted(b)将创建新列表,并保持原始列表不变

答案 3 :(得分:0)

从文档中:方法sort()不会返回任何值,但会从原始列表更改。因此,您要么使用

a = ['c','a','t']
b = ['t','a','c']
a.sort()
b.sort()
print(a, b)

或使用sorted(),它从给定的可迭代对象返回排序列表。

a = ['c','a','t']
b = ['t','a','c']
m = sorted(a)
n = sorted(b)
print(m, n)

答案 4 :(得分:-1)

请尝试sorted

>>> a = ['c','a','t']
>>> b = ['t','a','c']
>>> m = sorted(a)
>>> n = sorted(b)
>>> m
['a', 'c', 't']
>>> n
['a', 'c', 't']

a.sort()更改 a 本身,并返回None。

>>> a = ['c','a','t']
>>> a.sort()
>>> a
['a', 'c', 't']

答案 5 :(得分:-1)

sort()方法执行inplace排序,并且排序本身是一个空函数,如您所见,它没有任何输出,因此现在对原始数组进行了排序

答案 6 :(得分:-2)

这是因为排序,就地修改了列表,什么也没有返回,您的代码已修复:

a = ['c','a','t']
b = ['t','a','c']
a.sort()
b.sort()
print(a,b)
相关问题