我对python(使用2.7)有一个奇怪的反应。我正在尝试复制列表并同时向副本添加内容。这是代码:
myList = [1]
>>> newList = list(myList).append(2)
>>> newList
>>> print newList
None
>>> type(newList)
<type 'NoneType'>
为什么我得到一个NoneType对象而不是我附加的列表副本? 当我尝试将list1复制它作为list2多次并将list2的元素追加到list1中的那些时,我偶然发现了这一点。
>>> list1 = [1,2]
>>> list2 = [3,4]
>>> list3 = [list(list1).append(i) for i in list2]
>>> list3
[None, None]
我期待:
>>> list3
[[1,2,3],[1,2,4]]
为什么没有,没有?
非常感谢!
答案 0 :(得分:0)
您可以通过添加额外的行来执行此操作:
myList=[1]
myList.append(2);newList=myList
您还可以直接扩展(追加)列表,如:
list1 = [1,2]
list2 = [3,4]
list1.extend(list2);list3=list1
如果你不想改变,那就试试这个:
list1 = [1,2]
list2 = [3,4]
list3=list1;list3.extend(list2)
还有:
myList=[1]
newList=myList;newList.append(2)
答案 1 :(得分:0)
append函数修改列表并返回None。 Newlist为None,因为append()直接修改列表,而不是返回修改后的列表。 此代码将创建新列表并一步添加到该列表中。
myList = [1]
newList = myList + [2]