假设我有以下简单的情况:
import pandas as pd
def multiply(row):
global results
results.append(row[0] * row[1])
def main():
results = []
df = pd.DataFrame([{'a': 1, 'b': 2}, {'a': 3, 'b': 4}, {'a': 5, 'b': 6}])
df.apply(multiply, axis=1)
print(results)
if __name__ == '__main__':
main()
这将导致以下回溯:
^{pr2}$我知道我可以将results = []
移到if
语句中,但是有没有一种方法可以保持我现在的结构并使其正常工作?在
必须将结果移出函数。我认为没有其他方法可以不把变量去掉。在
一种方法是将结果作为参数传递给multiply方法。在
必须在函数外部声明结果,例如:
更新
还要注意,python中的
^{pr2}$list
是可变的,因此不需要在函数的开头用global指定它。示例相关问题 更多 >
编程相关推荐