Python嵌套列表子列表末尾加元素遇None输出问题求助
解决嵌套列表子列表末尾添加元素的问题
你输出None的核心原因是**list.append()方法的返回值就是None**——这个方法是原地修改原列表,不会返回修改后的列表,所以你把b = i.append(0)时,b自然会被赋值为None。
下面给你两种正确的实现方式:
方式一:直接修改原嵌套列表
如果不需要保留原列表,直接原地修改每个子列表即可,不需要额外赋值:
a = [ [0, 1 ,-1, 2, -2, 3, -3, 4, -4, -5, 5, 8], [0, 6 ,-6, 7, -7, 8, -8, 9, -9, -10, 10, 9] ] for i in a: i.append(0) # 直接给每个子列表末尾加0,原地修改 print(a)
运行后会输出修改后的嵌套列表,每个子列表末尾都新增了0。
方式二:生成新的嵌套列表(不修改原列表)
如果需要保留原列表,可以用列表推导式结合+运算符生成新列表:
a = [ [0, 1 ,-1, 2, -2, 3, -3, 4, -4, -5, 5, 8], [0, 6 ,-6, 7, -7, 8, -8, 9, -9, -10, 10, 9] ] new_a = [sublist + [0] for sublist in a] # 每个子列表拼接[0]生成新列表,组成新嵌套列表 print(new_a)
这种方式不会改变原列表a,得到的是一个全新的嵌套列表。
内容的提问来源于stack exchange,提问作者walter white
相关产品推荐
相关产品推荐

