dummy_list = ["1", "2", "3", "4"]
if 1 in dummy_list is [0]:
print ("it is the first element")
else:
print ("no it is not the first element")
我正在尝试检查列表,确定变量在列表中的位置是否在指定的区域设置内。现在,尽管事实上[0] IS 1,(我通过以下方式验证了这一点):
print (dummy_list[0])
哪个返回1;我很困惑,为什么条件语句会另外说明。
答案 0 :(得分:2)
in
是与is
分开的测试;你chained the comparisons,Python执行测试:
(1 in dummy_list) and (dummy_list is [0])
两项测试都失败了。 1
中没有dummy_list
整数,只有"1"
个字符串对象。并且dummy_list
与[0]
表达式生成的列表不完全相同;后者将始终生成一个新的列表对象,因此is
identity test总是失败。
您无法对in
测试做出断言;你无法测试收容所匹配的索引。只需显式测试索引:
if dummy_list[0] == "1":
或如果dummy_list
可以是空列表,请添加测试以确保它不为空:
if dummy_list and dummy_list[0] == "1":