Python中实现字符串列表转布尔嵌套列表的最优雅方式是什么?
更Pythonic的布尔值列表转换实现
你可以用嵌套列表推导式来大幅简化代码,这是Python中最符合风格的简洁写法之一:
arr = ['XOOXO', 'XOOXO', 'OOOXO', 'XXOXO', 'OXOOO'] bool_lists = [[char == 'X' for char in s] for s in arr]
代码说明
- 外层列表推导式遍历原列表中的每个字符串
s - 内层列表推导式遍历字符串中的每个字符
char,直接通过char == 'X'生成布尔值(比较运算本身就会返回True或False,无需额外的if-else判断) - 全程无需手动维护临时列表,一行代码完成所有转换,可读性和简洁性拉满
如果你偏好使用 map 函数,也可以这样写:
bool_lists = [list(map(lambda c: c == 'X', s)) for s in arr]
这里用 map 配合匿名函数将每个字符转为布尔值,再通过 list() 把map对象转为列表,外层同样用列表推导式遍历所有字符串。
内容的提问来源于stack exchange,提问作者Mark Boyd
相关产品推荐
相关产品推荐

