Python中map生成列表的元素分隔符如何从逗号替换为按位或|
实现方案
你需要通过累积运算完成多个值的连续按位或,Python中可以用functools.reduce配合按位或操作实现:
- 无额外依赖的基础实现
from functools import reduce match key: # 直接在case分支中计算按位或结果 case reduce(lambda a, b: a | b, map(ord, map(str, range(1, 10)))): # 你的业务逻辑
- 可读性更高的写法(使用operator模块封装的按位或方法)
from functools import reduce import operator # 也可以提前计算好结果再匹配 target = reduce(operator.or_, map(ord, map(str, range(1, 10)))) match key: case target: # 你的业务逻辑
如果你确实需要得到[按位或结果]这种单元素列表格式,只要在外层套上方括号即可:
target_list = [reduce(operator.or_, map(ord, map(str, range(1, 10))))]
补充说明:连续按位或是二元运算,最终会得到一个单独的整数结果,原写法生成的是包含9个ord值的列表,和你需要的输出结构不同,必须通过累积运算合并所有值。
内容的提问来源于stack exchange,提问作者Sayam
相关产品推荐
相关产品推荐

