2 回答

TA贡献2003条经验 获得超2个赞
在 Python 中,每个变量都被视为对象。
list_from_user
和LIST_OF_NUMBERS
是两个列表,如果在其.sort()
上调用该方法,则它不会返回列表。相反,它会更改原始对象列表。
所以list_from_user.sort() == LIST_OF_NUMBERS.sort()
总会返回True
,因为基本上它比较None == None
。

TA贡献1845条经验 获得超8个赞
当使用.sort()而不是返回排序列表时,它在排序列表时返回一个值None。IE:
>>> a = [5,3,7]
>>> print(a.sort())
None
>>> print(a)
[3,5,7]
要解决此问题,请在比较之前使用排序,因为比较True同时返回 return None。例如:
import random
list_len = 5
numbers = [0,1,2,3,4,5,6,7,8,9]
LIST_OF_NUMBERS = random.sample(numbers, list_len)
list_from_user = [int(input()) for i in range(list_len)]
comp_nums.sort()
list_from_user.sort()
if list_from_user == LIST_OF_NUMBERS:
print("yes")
else:
print("no")
添加回答
举报