Python嵌套列表处理:判断子列表含指定字符并生成结果列表
修正嵌套列表的判断逻辑,实现预期结果
你的代码问题在于遍历了每个子列表中的所有元素,导致每个元素都会向result追加一次值,最终结果长度和原列表所有元素总数一致,而不是和子列表的数量匹配。
要实现每个子列表对应一个结果的需求,只需要针对每个子列表做一次是否包含₾的判断即可,以下是两种可行的修正方案:
方案一:基础循环实现
mylist = [['a','b','c','₾'],['x','t','f','₾'],['a','d'],['r','y'],['c','₾'],['a','b','c','i'],['h','j','l','₾']] result = [] for row in mylist: # 检查当前子列表是否包含目标字符 if '₾' in row: result.append('₾') else: result.append(None) print(result) # 输出: ['₾','₾',None,None,'₾',None,'₾']
方案二:列表推导式简化实现
如果你想让代码更简洁,可以用Python的列表推导式一行完成:
mylist = [['a','b','c','₾'],['x','t','f','₾'],['a','d'],['r','y'],['c','₾'],['a','b','c','i'],['h','j','l','₾']] result = ['₾' if '₾' in row else None for row in mylist] print(result) # 输出: ['₾','₾',None,None,'₾',None,'₾']
这两种方案都是直接对每个子列表进行判断,每个子列表仅向result中追加一次值,完全符合你的预期需求。
内容的提问来源于stack exchange,提问作者beridzeg45
相关产品推荐
相关产品推荐

