import pandas as pd
def add_column(df):
df = df.copy() # 这里创建了 df 的一个副本
df['new_column'] = range(len(df))
# return df
df = pd.DataFrame({'A': [1, 2, 3]})
add_column(df)
print(df)
import pandas as pd
def add_column(df):
df = df.copy() # 这里创建了 df 的一个副本
df['new_column'] = range(len(df))
return df
df = pd.DataFrame({'A': [1, 2, 3]})
df = add_column(df)
print(df)
Python是对象引用传递
传递的是对象的引用:当你将一个变量作为参数传递给函数时,实际上传递的是该变量所指向的对象的引用,而不是对象本身或其副本。
可变对象与不可变对象的区别:
不可变对象(如整数、浮点数、字符串、元组等):由于不可变对象无法修改,函数内部对该对象的任何操作都会创建一个新的对象,原始对象不受影响。
可变对象(如列表、字典、集合等):函数内部对对象的修改会直接影响原始对象,因为它们共享同一个引用。
下面补充例子
例子1
def modify_value(x):
x += 10
print(f"Inside function: x = {x}")
a = 5
modify_value(a)
print(f"Outside function: a = {a}")
输出如下
Inside function: x = 15
Outside function: a = 5
例子2
def modify_list(lst):
lst.append(4)
print(f"Inside function: lst = {lst}")
my_list = [1, 2, 3]
modify_list(my_list)
print(f"Outside function: my_list = {my_list}")
输出如下
Inside function: lst = [1, 2, 3, 4]
Outside function: my_list = [1, 2, 3, 4]