Python append()的两个坑
写Python的时候被append()这个简单又常用的方法不知道坑了多少次了……
1. return None
第一个坑:append()会修改原list,而不会return任何东西。
正确:
lst.append(new_item)
错误:
lst = lst.append(new_item) #此时lst就变成NoneType了
注意:pandas DataFrame的append()恰恰相反,会return a new DataFrame:
正确:
df = pd.append(df2)
2. append() vs. extend()
append() 针对的是element,而extend() 针对的是list。
举个例子。如果想在一个list后面附加另一个list,需要用extend:
# insert lst_new after lst
lst = [1,1,2]
lst_new = [3,5]
# option 1
lst.append(lst_new)
print(lst)
--> [1,1,2,[3,5]]
# option 2
lst.extend(lst_new)
print(lst)
--> [1,1,2,3,5]
而如果只是想在list后面插入新元素,则用append:
lst.append(3)
lst.append(5)
print(lst)
--> [1,1,2,3,5]