Python优化:将井字棋字符串嵌套列表转换为整数嵌套列表
优化井字棋字符串矩阵转整数矩阵的实现
你当前的实现中,A.index() 每次都是线性查找列表元素,效率偏低,尤其是当映射关系或矩阵规模扩大时。这里提供更高效简洁的优化实现:
最优实现:字典映射 + 嵌套列表推导式
def make_integer_matrix(inputs): char_map = {'X': 1, 'O': 0, '#': 99} return [[char_map[char] for char in row] for row in inputs]
核心优势:
- 查找效率跃升:字典的键查找是O(1)时间复杂度,替代了原代码中
list.index()的O(n)线性查找,哪怕映射元素增多也能保持高效。 - 代码简洁通用:用列表推导式替代手动循环
append,Python底层对列表推导式的优化比显式循环更快;同时无需硬编码行内元素索引,适配任意长度的行结构。 - 可读性更强:直接通过字典键值对体现映射关系,逻辑一目了然。
扩展:处理未知字符(可选)
如果输入矩阵可能包含未定义的字符,可以用dict.get()添加默认值,避免抛出KeyError:
def make_integer_matrix(inputs): char_map = {'X': 1, 'O': 0, '#': 99} return [[char_map.get(char, -1) for char in row] for row in inputs]
这里默认用-1表示未知字符,你可以根据需求调整默认值。
内容的提问来源于stack exchange,提问作者Saffie
相关产品推荐
相关产品推荐

