Skip to main content
 首页 » 编程设计

python之无法检查值是否在列表中

2025年05月04日12txw1958

我有这个列表,它是 rs = cur.fetchall 的返回值,但我找不到其中是否包含值“type”。

rs=[('objectid', 'integer'), ('nameshort', 'character varying'), ('urbanprojectyear', 'character varying'), ('urbanprojectname', 'character varying'), ('notes', 'character varying'), ('scalerank', 'smallint'), ('stylename', 'character varying'), ('firstyear', 'smallint'), ('lastyear', 'smallint'), ('type', 'character varying'), ('name', 'character varying'), ('globalid', 'character varying'), ('created_user', 'character varying'), ('created_date', 'timestamp without time zone'), ('last_edited_user', 'character varying'), ('last_edited_date', 'timestamp without time zone'), ('sde_state_id', 'bigint'), ('shape', 'USER-DEFINED')] 

我已经尝试了这个和其他几种方法。但它总是转到 if 语句的 else。

if 'type' in rs: 
    print("True") 
else: print("False") 

我错过了什么?

请您参考如下方法:

您缺少的是 'type' 不在 rs 中。但是,('type', 'character varying') 是。

如果你想检查一个以 'type' 开头的元组是否在列表中,这会起作用:

print('type' in [x for x, _ in rs]) 

还有其他更有效但更冗长的方法来解决问题,但您明白了。

在您的情况下,该列表似乎确实代表了一些比 dict 更好的东西。因此,这可能最适合您的情况:

dict_rs = dict(rs) 
print('type' in dict_rs)