我有以下程序。我想对列表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'])
答案 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)