我在StackOverflow的其他地方找不到这个问题,或者我的研究技能不够先进,所以我现在要问:
所以我在没有触及它的情况下今天玩Python,我发现下面的代码段不起作用:
>>> list1 = [1,2,3]
>>> list2 = [4,5,6]
>>> list3 = list1.append(list2)
>>> list3
为什么最后一行不会产生任何结果?
此外,我正在使用Python 2.7.3,如果这有任何区别
答案 0 :(得分:8)
list.append()
操作就地 - 它会修改调用它的列表,并返回None
。
>>> list1 = [1,2,3]
>>> list2 = [4,5,6]
>>> list1.append(list2)
>>> list1
[1, 2, 3, [4, 5, 6]]
因此,当您将返回的值分配给list3
时,list3
为None
,交互式shell不会像其他结果一样隐式打印出来。
作为备注,您可能实际上需要list.extend()
或+
,具体取决于您的使用案例。
答案 1 :(得分:5)
list1.append(list2)
修改list1
并返回None
,因此list3
为None
。当None
是声明的结果时,它不会以交互模式打印。
答案 2 :(得分:5)
此外,为了连接列表,您可以这样做:
list3 = list1 + list2