Python向现有列表追加新列表时extend方法返回None的原因是什么?
问题原因
list.extend()是Python中列表的原地修改方法,这类方法没有自定义返回值,默认返回None,你直接打印extend方法的调用结果,自然输出None。- 额外逻辑提示:你原代码的写法会把
s中的每一个"1"单独拆分为外层列表的元素,直接破坏原有嵌套网格的结构,如果是要把s作为新的一行加到网格中,用extend是错误的。
正确实现方案
场景1:将s作为完整的新行追加到嵌套网格末尾
使用append()方法,修改后代码如下:
board = [ [" "," ","1"," "], [" "," ","1"," "], ["1","1"," "," "], ["1"," "," ","1"]] def total1count(board: list): t = [] for x in board: t.append(x.count("1")) return sum(t) s = list("1"*total1count(board)) board.append(s) print(board)
场景2:将s的所有元素展开追加到外层列表末尾
先执行extend修改原列表,再打印修改后的board即可:
# 前面定义board、total1count、s的代码不变 board.extend(s) print(board)
内容的提问来源于stack exchange,提问作者Joshua Bradley
相关产品推荐
相关产品推荐

