比较两个列表 returns True 即使它需要 return False
Comparing two lists returns True even though it needs to return False
我正在尝试制作一个程序来比较两个列表,returns 如果它们都具有相同的变量则为“True”,否则为“False”。
密码是:
def are_lists_equall(list1, list2):
if len(list1) == len(list2) and list1.sort() == list2.sort():
return True
else:
return False
list1 = [0.6, 1, 2, 3]
list2 = [9, 0, 5, 10.5]
print(are_lists_equall(list1, list2))
输出为:
True
为什么会这样?
他们的长度是 4 所以第一个是真的
并且 sort() 方法没有 return 任何值。相反,它会更改原始列表。喜欢
if 4 == 4 and None == None:
这就是为什么它是真实的
如果您想确保比较这些列表,请使用 sorted() 方法:
sorted(list1) == sorted(list2)
会给你 False
您好,欢迎来到 Stack overflow。
sort
方法对列表本身进行排序,而不是 return 排序列表,实际上 sort()
return None.
所以长度相等 None == None -> 因此你得到 True
.
你应该写:
def are_lists_equall(list1, list2):
if len(list1) == len(list2):
list1.sort()
list2.sort()
if list1 == list2:
return True
else:
return False
else:
return False
list1 = [1, 2, 3, 4]
list2 = [2, 1, 3, 4]
print(are_lists_equall(list1, list2))
我建议您也阅读这篇很棒的文章:
https://www.tutorialspoint.com/how-to-compare-two-lists-in-python
您应该使用两个列表的值创建临时变量,以便对它们进行排序和比较:
def are_lists_equall(list1, list2):
l1 = list1
l1.sort()
l2 = list2
l2.sort()
if l1 == l2:
return True
else:
return False
list1 = [0.6, 1, 2, 3]
list2 = [9, 0, 5, 10.5]
print(are_lists_equall(list1, list2))
我正在尝试制作一个程序来比较两个列表,returns 如果它们都具有相同的变量则为“True”,否则为“False”。
密码是:
def are_lists_equall(list1, list2):
if len(list1) == len(list2) and list1.sort() == list2.sort():
return True
else:
return False
list1 = [0.6, 1, 2, 3]
list2 = [9, 0, 5, 10.5]
print(are_lists_equall(list1, list2))
输出为:
True
为什么会这样?
他们的长度是 4 所以第一个是真的 并且 sort() 方法没有 return 任何值。相反,它会更改原始列表。喜欢
if 4 == 4 and None == None:
这就是为什么它是真实的
如果您想确保比较这些列表,请使用 sorted() 方法:
sorted(list1) == sorted(list2)
会给你 False
您好,欢迎来到 Stack overflow。
sort
方法对列表本身进行排序,而不是 return 排序列表,实际上 sort()
return None.
所以长度相等 None == None -> 因此你得到 True
.
你应该写:
def are_lists_equall(list1, list2):
if len(list1) == len(list2):
list1.sort()
list2.sort()
if list1 == list2:
return True
else:
return False
else:
return False
list1 = [1, 2, 3, 4]
list2 = [2, 1, 3, 4]
print(are_lists_equall(list1, list2))
我建议您也阅读这篇很棒的文章: https://www.tutorialspoint.com/how-to-compare-two-lists-in-python
您应该使用两个列表的值创建临时变量,以便对它们进行排序和比较:
def are_lists_equall(list1, list2):
l1 = list1
l1.sort()
l2 = list2
l2.sort()
if l1 == l2:
return True
else:
return False
list1 = [0.6, 1, 2, 3]
list2 = [9, 0, 5, 10.5]
print(are_lists_equall(list1, list2))