如何将字符串列表转换为布尔值构成的二维列表?
如何将字符串列表转换为布尔值二维列表?
需求说明
给定字符串列表:
original = ['False False False False False', 'False False False False False', 'False True True True True']
需要转换为布尔值构成的二维列表:
final = [[False, False, False, False, False],[False, False, False, False, False],[False, True, True, True, True]]
你的代码问题与补全
你当前的嵌套循环逻辑有误:内层循环遍历的是len(original)(也就是3),但实际上应该处理每个字符串分割后的元素。以下是补全并修正后的代码:
original = ['False False False False False', 'False False False False False', 'False True True True True'] final = [] for i in range(3): final.append([]) # 将当前字符串按空格分割为单个布尔字符串 current_parts = original[i].split() for j in range(len(current_parts)): # 把字符串转为对应布尔值 final[i].append(current_parts[j] == "True")
更简洁的实现方式
用列表推导式可以一行完成转换,代码更简洁易读:
original = ['False False False False False', 'False False False False False', 'False True True True True'] final = [[part == "True" for part in s.split()] for s in original]
逻辑说明
- 遍历
original中的每个字符串,用split()按空格分割成单个"True"/"False"字符串的列表 - 对每个分割后的字符串,判断是否等于"True",返回对应的布尔值(相等则为
True,否则为False) - 将每一组转换后的布尔值列表收集起来,形成最终的二维列表
内容的提问来源于stack exchange,提问作者Francis
相关产品推荐
相关产品推荐

