如何用最Pythonic的方式判断两字符串是否在字典键或列表中
Pythonic写法实现多容器存在性判断
首先纠正你代码里的小笔误:id应该是in,而且判断字典键存在时,不需要调用d.keys(),直接写'str_1' in d就可以——Python字典本身支持这种操作,更简洁高效。
下面是几种优雅的单行Pythonic写法:
直观合并条件:最直接的简化,把所有判断逻辑合并到一行,可读性拉满
return 'str_1' in d or 'str_2' in d or 'str_1' in l or 'str_2' in l集合交集判断:利用集合的交运算,只要目标字符串集合和容器元素集合的交集非空,就满足条件
return bool({'str_1', 'str_2'} & (set(d) | set(l)))或者用
isdisjoint的反向逻辑(更高效,因为不需要生成完整交集):return not {'str_1', 'str_2'}.isdisjoint(set(d) | set(l))any()生成器表达式:语义最清晰,明确表达"任意一个字符串满足在d或l中"的逻辑,扩展性强(后续要加更多字符串只需修改元组)return any(s in d or s in l for s in ('str_1', 'str_2'))
内容的提问来源于stack exchange,提问作者J. Donič
相关产品推荐
相关产品推荐

