马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在 Python 中,in 和 is 是两个常用但含义不同的关键字,初学者很容易混淆它们的用法。下面是关于它们的详细表明、留意事项及常见示例。
一、关键字 in:成员运算符
1. 功能
用于判断某个元素是否存在于序列(如列表、元组、字符串、集合、字典)中。
2. 根本语法
- element in container # 返回 True 或 False
复制代码 3. 示例
- # 字符串
- 'a' in 'apple' # True
- # 列表
- 3 in [1, 2, 3, 4] # True
- # 元组
- 'x' in ('x', 'y') # True
- # 字典(判断的是“键”)
- d = {'a': 1, 'b': 2}
- 'a' in d # True
- 1 in d # False
- # 集合
- 5 in {1, 2, 3, 5} # True
复制代码 4. 留意事项
留意点阐明字典中 in 判断的是键,不是值in 实际调用的是容器的 __contains__() 方法可以用于 for x in ... 的迭代语句中 5. 与 not in 团结使用
- if 'x' not in ['a', 'b', 'c']:
- print("x 不在列表中")
复制代码 二、关键字 is:身份运算符
1. 功能
用于判断两个变量是否引用的是同一个对象(即内存地点是否雷同)。
2. 根本语法
- a is b # True if a 和 b 是同一个对象
- a is not b # True if a 和 b 是不同对象
复制代码 3. 示例
- a = [1, 2, 3]
- b = a
- c = [1, 2, 3]
- print(a is b) # True,引用同一对象
- print(a is c) # False,虽然值相等,但不是同一对象
- print(a == c) # True,值相等
复制代码 4. 常见应用场景
- 判断是否为 None:保举使用 is 而不是 ==
- x = None
- if x is None:
- print("x is None")
复制代码
- # 不推荐:
- type(x) is int
- # 推荐:
- isinstance(x, int)
复制代码 三、in vs is 区别总结
特性inis范例成员运算符身份运算符判断内容某元素是否存在于容器中两个变量是否指向同一个对象返回值范例True / FalseTrue / False应用场景序列判断、包罗性查抄None 判断、引用对象判断 四、综合示例
- a = [1, 2, 3]
- b = a
- c = [1, 2, 3]
- print(2 in a) # True
- print(b is a) # True
- print(c is a) # False
- print(c == a) # True
- d = {'k': 10}
- print('k' in d) # True(判断键)
- print(10 in d) # False(值不在键列表中)
- x = None
- print(x is None) # 推荐写法
- print(x == None) # 也可以,但不推荐
复制代码 五、常见错误与误区
错误写法题目阐明if x == None:不保举;应该使用 x is None 更明确if a is [1, 2, 3]:错误;新列表对象地点不同,虽然值一样,但不是一个对象if 3 is in lst:错误语法;不能混用 is 与 in 六、保举实践发起
- 判断引用关系用 is,尤其是与 None 比较时。
- 判断容器中是否包罗元素,同一使用 in。
- 判断两个变量值是否相称,用 ==,不是 is。
- 永远不要使用 is 来判断数值、字符串等是否相称,除非你确定它们是否是同一对象。
|