"in" 运算符未按预期工作?(python)
"in" operator not working as expected?(python)
我在 python 学习运算符概念时是初学者。我被困。有人可以帮我吗??为什么 in 运算符不返回 true?
list1 = [1,2,3]
list2 = [1,2,3,4,5]
print(list1 in list2)`
相反,它 returns 错误。
list1 = [1,2,3]
list2 = [1,2,3]
print(list1 in list2)`
returns 两种情况都为假。
list1 in list2
不检查 list1
的每个元素是否包含在 list2
中;它检查 list1
本身 是否是 list2
:
的元素
>>> [1, 2, 3] in [1, 2, 3]
False
>>> [1, 2, 3] in [[1, 2, 3]]
True
您可以使用 all
函数自动执行逐元素检查:
>>> all(x in list2 for x in list1)
True
正如 Chepner 所说,list1 in list2
检查 list1
是否在 list2
中。您可以做的是使用 for 循环检查 list1
中的每个元素是否在 list2
中:
for i in list1:
if i in list2:
print(i)
这将打印出在 list1
和 list2
中找到的所有元素。
您还可以使用 sets
,这是一个更快的答案。
首先把list1和list2做成一个集合:
set_list1 = set(list1)
set_list2 = set(list2)
你也可以不从列表开始写一个集合:
set_list1 = {1,2,3}
set_list2 = {3,4,5}
请注意,在集合中,您使用 {}
而不是 []
然后,您可以使用集合执行以下操作:
print(set_list1 | set_list2) # Union - {1,2,3,4,5}
print(set_list1 & set_list2) # Intersection - {3}
print(set_list1 - set_list2) # Difference - {1,2}
print(set_list2 - set_list1) # Difference - {4,5}
print(set_list1 ^ set_list2) # Symmetric difference - {1,2,4,5}
希望对您有所帮助。
我在 python 学习运算符概念时是初学者。我被困。有人可以帮我吗??为什么 in 运算符不返回 true?
list1 = [1,2,3]
list2 = [1,2,3,4,5]
print(list1 in list2)`
相反,它 returns 错误。
list1 = [1,2,3]
list2 = [1,2,3]
print(list1 in list2)`
returns 两种情况都为假。
list1 in list2
不检查 list1
的每个元素是否包含在 list2
中;它检查 list1
本身 是否是 list2
:
>>> [1, 2, 3] in [1, 2, 3]
False
>>> [1, 2, 3] in [[1, 2, 3]]
True
您可以使用 all
函数自动执行逐元素检查:
>>> all(x in list2 for x in list1)
True
正如 Chepner 所说,list1 in list2
检查 list1
是否在 list2
中。您可以做的是使用 for 循环检查 list1
中的每个元素是否在 list2
中:
for i in list1:
if i in list2:
print(i)
这将打印出在 list1
和 list2
中找到的所有元素。
您还可以使用 sets
,这是一个更快的答案。
首先把list1和list2做成一个集合:
set_list1 = set(list1)
set_list2 = set(list2)
你也可以不从列表开始写一个集合:
set_list1 = {1,2,3}
set_list2 = {3,4,5}
请注意,在集合中,您使用 {}
而不是 []
然后,您可以使用集合执行以下操作:
print(set_list1 | set_list2) # Union - {1,2,3,4,5}
print(set_list1 & set_list2) # Intersection - {3}
print(set_list1 - set_list2) # Difference - {1,2}
print(set_list2 - set_list1) # Difference - {4,5}
print(set_list1 ^ set_list2) # Symmetric difference - {1,2,4,5}
希望对您有所帮助。