You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何结合is与in判断同一对象是否存在于列表中

解决方案

你可以用any()内置函数配合生成器表达式实现一行式的身份校验,写法比自定义函数简洁很多,完全符合你的需求:

修改后的判断语句

把你原代码中的

if a in ls:

替换为:

if any(e is a for e in ls):

修改后完整代码运行时,any()会逐个遍历列表元素做身份比对,只有元素和a是同一个对象才会返回True,就会输出你期望的Print this line instead。

原理说明

  • any()会迭代传入的生成器,只要有一个元素满足e is a的条件就立刻返回True,遍历完所有元素都不满足则返回False,逻辑和你自定义的isIn函数完全一致,没有额外性能损耗。
  • 如果需要多次对同一个列表做身份存在性判断,可以提前把列表所有元素的id存为集合,后续判断效率更高:
    # 初始化一次即可
    id_set = set(id(e) for e in ls)
    # 后续判断直接查集合,O(1)复杂度
    if id(a) in id_set:
    

内容的提问来源于stack exchange,提问作者12431234123412341234123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:51:01