对于我的程序,用户可以输入特定的n。
根据该 n,我需要创建一个全局数组,其中包含 n 个大小为 0 的存储桶,因为我需要在其他函数中使用此数组 + 递增存储桶中的元素,这再次取决于某些条件。
inv = [] # global var counts all inversion at level n
order = [] # global var counts all ordered elements at level n
def foo():
# Using order and inv here
def main():
# Save Input in variable in n
n = int(raw_input())
order = [0]*n
inv = [0]*n
我该怎么做?我总是收到一个索引错误,告诉我列表索引超出范围。谢谢!
有两种方法可以做到这一点 - 全局变量与参数。
使用 global 关键字允许您访问函数中order
和inv
的全局实例。
inv = [] # global var counts all inversion at level n
order = [] # global var counts all ordered elements at level n
def foo():
# Using order and inv here
global order
global inv
def main():
global order
global inv
# Save Input in variable in n
n = map(int, raw_input().split())
order = [0]*n
inv = [0]*n
我建议这样做的方法是在主函数中声明order
和inv
,然后将它们作为参数传递给foo()
或任何其他需要它们的函数。
def foo(list_order, list_inv):
# Using order and inv here
def main():
# Save Input in variable in n
n = map(int, raw_input().split())
order = [0]*n
inv = [0]*n
foo(order, inv)