如何在Python的match-case语句中判断变量是否在指定列表中?
在Python的match-case中判断元素是否属于列表的简便方法
你可以利用match-case的**守卫条件(guard clause)**来实现,不需要逐个列举列表元素,直接判断x是否在目标列表中即可。
实现代码
首先定义你的列表:
a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9]
然后使用带守卫条件的match-case语句:
def get_result(x): match x: case _ if x in a: return "132" case _ if x in b: return "564" case _ if x in c: return "798" case _: return "未匹配到任何列表"
补充说明
case _中的_是通配符,会匹配任意值;后面的if x in a是守卫条件,只有当该条件成立时,才会执行当前case的代码块。- 如果你的列表元素数量很大,建议把列表转换成集合(set),因为集合的成员判断效率是O(1),远高于列表的O(n),修改后的定义如下:
a = {1, 2, 3} b = {4, 5, 6} c = {7, 8, 9}
这种写法既简洁又能应对大规模元素的场景,完全符合你的需求。
内容的提问来源于stack exchange,提问作者20-roso
相关产品推荐
相关产品推荐

